1.网络爬虫:自动从互联网中定向(有目标、过滤无关信息)或不定向(随机)地采集信息的一种程序。常用的类型有:通用网络爬虫(不定向)、聚焦网络爬虫(定向设置过滤规则)。
2.网络爬虫的应用:①搜索引擎②采集金融数据③采集商品数据④自动过滤广告⑤采集竞争对手的客户数据⑥采集行业相关数据,进行数据分析......
3.网络爬虫的运行原理
(1)通用网络爬虫:
①获取初始URL;②爬取页面并获取新的URL;③将爬取的内容放到服务器中,将新URL放入URL队列;④读取新URL,重复②③④;⑤直到满足停止条件结束。
(2)聚焦网络爬虫:
①对抓取目标进行相应的定义或描述;②获取初始URL;③爬取页面并获得新的URL;④将爬取的内容放到服务器中,过滤无关链接后,将新URL放入URL队列中;⑤确定下一步抓取目标,重复①②③④⑤;⑥直到满足停止条件结束。
4.正则表达式
(1)原子:是正则表达式中最基本的组成单位,每个正则表达式中至少要包含一个原子。常见的原子类型有:
①普通字符
![](https://img.haomeiwen.com/i1969457/e0c9154b3568209b.png)
②非打印字符
![](https://img.haomeiwen.com/i1969457/6d49b8667fb9f612.png)
③通用字符
\w匹配任意字母、数字、下划线
【\W匹配除了字母、数字、下划线以外的任意其它字符】
\d 匹配任意十进制数
【\D匹配除了十进制数以外的任意其它字符】
\s 匹配空白字符
【\S匹配除了空白字符以外的任意其它字符】
![](https://img.haomeiwen.com/i1969457/4a535beae396d7ae.png)
④原子表
![](https://img.haomeiwen.com/i1969457/bc6f504b22b199f0.png)
【注】①[jsz]表示三个字母处于平等地位,能够匹配的前提是保证pyth和n中间存在且只能存在j、s、z中任意一个。
②[^j] ^放在原子表中表示非,不是j的其它的原子。
(2)元字符
. 匹配任意字符
^ 匹配字符串开始的位置
$ 匹配字符串结束的位置
* 匹配重复0次、1次或者多次的位置
? 匹配重复0次或者1次的位置
+ 匹配重复1次或多次的位置
t{n} 原子t恰好出现了n次
t{n,} 原子t至少出现了n次
t{n,m} 原子t至少出现n次且至多出现m次(n<=t<=m)
t|s 模式选择符,t或者s
() 模式单元,用于提取某一内容
![](https://img.haomeiwen.com/i1969457/af716e750bd79cb6.png)
(3)模式修正符
I 忽略大小写
M 多行匹配
L 本地化识别匹配
U 根据unique字符解析字符
S 让.也能匹配换行符
![](https://img.haomeiwen.com/i1969457/f27ead8229944a2a.png)
(4)①贪婪模式:尽可能多的匹配。
②懒惰模式:尽可能少的匹配。
![](https://img.haomeiwen.com/i1969457/66e3137a6d9f98d1.png)
(5)正则表达式函数
①re.match()函数②re.search()函数
re.match()从头匹配;re.search()从左向右匹配 ,不在意字符串出现位置。
![](https://img.haomeiwen.com/i1969457/a2ad94696bd40d30.png)
③全局匹配函数re.compile(pat).findall(string)
![](https://img.haomeiwen.com/i1969457/4bd4faa2d7726ba3.png)
④re.sub()函数
![](https://img.haomeiwen.com/i1969457/14ea2d0c788ea175.png)
(6)匹配.com、.cn
![](https://img.haomeiwen.com/i1969457/5949ce9084a27032.png)
网友评论