python爬虫的一些总结
首先,爬虫是:一段自动抓取互联网信息的程序,从互联网上抓取对于我们有价值的信息。减少人力劳动(当然不要对网站造成损坏)
Python 爬虫架构主要由五个部分组成,分别是调度器、URL管理器、网页下载器、网页解析器、应用程序(爬取的有价值数据)。
网页请求的过程分为两个环节:
- Request (请求):每一个展示在用户面前的网页都必须经过这一步,也就是向服务器发送访问请求。
- Response(响应):服务器在接收到用户的请求后,会验证请求的有效性,然后向用户(客户端)发送响应的内容,客户端接收服务器响应的内容,将内容展示出来,就是我们所熟悉的网页请求,如图 8 所示。
Response相应
网页请求的方式也分为两种:
- GET:最常见的方式,一般用于获取或者查询资源信息,也是大多数网站使用的方式,响应速度快。
- POST:相比 GET 方式,多了以表单形式上传参数的功能,因此除查询信息外,还可以修改信息。
这就是两个爬取的实例
爬取到网页后通常是这种形式
关于爬取到网页的数据
为了提取出我们所需要的信息经常利用一些方法来解析数据,从中提取出我们所需要的。
常见的正则表达式
正则表达式语法由字符和操作符构成
1、作用(正则表达式是一种字符串匹配的模式)
数据验证:比如电话号码、邮箱等
替换文本:快速找到特定文本,用于替换
快速提取字符串:基于匹配原则,快速从文档中查找或提取子字符串
2、语法(普通字符+特殊字符)
普通字符
[abc] 匹配[...]的所有字符
[^abc] 取反,除了[...]的其他字符
[A-Z] 区间字母A到Z
. 匹配除(\n换行符 \r 回车符)的任何单个字符
\s \S 匹配所有,\s所有空白符,包括换行 \S非空白符,不包括换行
\w 匹配字母、数字、下划线
特殊字符
结尾位置(匹配字符----$)
^ 开始位置(匹配$字符----^)
() 子表达式开始和结束(匹配字符----( 和 \))
- 匹配零次或多次(匹配字符----*)
- 匹配一次或多次(匹配字符----+)
? 匹配零次或一次(匹配字符----\?)
| 两项间的一个(匹配字符----|)
限定符
{n} n为非负整数,匹配n次
{n,} n为非负整数,至少n次
{n,m} n为非负整数,n<=m,最少n次,最多m次
修饰符
i 不区分大小写
g 全局匹配
m 多行匹配
s 特殊字符远点包含换行符
4、使用方法
字符串.match(正则):返回符合的字符串,若不满足返回null
字符串.search(正则):返回搜索到的位置,若非一个字符,则返回第一个字母的下标,若不匹配则返回-1
字符串.replace(正则,新的字符串):找到符合正则的内容并替换
正则.test(字符串):在字符串中查找符合正则的内容,满足则返回true,反之为false