你们真的认为你们不回复我就不发文了吗?我这么美丽大方善良可爱,当然是一定会给大家的啊~
所以如果前两篇你没有看,那就赶紧去看吧!
手把手,脚把脚地教你实现网络爬虫程序(上)
手把手,脚把脚地教你实现网络爬虫程序(下)
懒得废话,我们直接切入主题
一、正则表达式
实际上爬虫一共就四个主要步骤:1.明确目标(要知道你准备在哪个范围或者网站去搜索)2.爬(将所有的网站的内容全部爬下来)3.取(去掉对我们没用处的数据)4.处理数据我们在第四节中介绍的简单的"贴吧小爬虫"实际上省略了第3步,也就是"取"的步骤。因为我们down下了的数据是全部的网页,这些数据很庞大并且很混乱,大部分的东西使我们不关心的,因此我们需要将之过滤出来。那么对于文本的过滤或者规则的匹配,这里就有个学问,就是"正则表达式"。说到正则表达式很多人都为之蛋疼,确实,这个东西要是学习精通并且应用熟练实属一件蛋疼的事。但是作为一个工程师,要有一种思维,就是用到学到,用到3分,我学4分、如果用到7分,我学8分。因为这个世界太大了,人类的庞大的智慧积累,一个人用尽毕生的精力都学不完。对于一个陌生技术来讲也是这个道理。
所以说,如果你只是想写一个简单的爬虫,那么只需要初步了解正则表达式就ok了。好了,下面我们来看一下枯燥的正则表达式概念~~1.1正则表达式的基础正则表达式是用于处理字符串的强大工具,他并不属于某种编程语言。正则表达式拥有独立的处理引擎,不管什么编程语言,正则表达式的语法都是一样的。
正则表达式的大致匹配过程是:
1.依次拿出表达式和文本中的字符比较,
2.如果每一个字符都能匹配,则匹配成功;一旦有匹配不成功的字符则匹配失败。
3.如果表达式中有量词或边界,这个过程会稍微有一些不同。
下面是从网上down下来的一个正则表达式的语法图:
1.2.数量词的贪婪模式与非贪婪模式
正则表达式通常用于在文本中查找匹配的字符串。
贪婪模式,总是尝试匹配尽可能多的字符;
非贪婪模式,则相反,总是尝试匹配尽可能少的字符。
(Python里数量词默认是贪婪的)
例如:
正则表达式"ab*"如果用于查找"abbbc",将找到"abbb"。
而如果使用非贪婪的数量词"ab*?",将找到"a"。
二、python中如何使用正则表达式
python中是通过一个叫"r"的包来支持正则表达式。
当然具体的"r"中的方法可以在python的命令行中?????
进行查看。
这里面,我们只是做一个简单的正则匹配。
首先可以创建一个r_tst.py文件。然后输入代码如下:我们来详细的分析一下上面的代码,首先
#-*-coding:utf-8-*-
表示当前的python文件的编码格式是“utf-8”。
importr
r模块提供一个方法叫北京治疗白癜风费一般是多少钱中科白癜风医院微博