实战:总结知识点疫情爬虫
技术亮点:
1、采用requests发送请求,获取响应
2、采用BeautifulSoup4解析页面数据
3、采用正则表达式 提取不规则字符串
4、采用json模块处理json格式数据
5、采用 类封装爬虫项目代码
6、对爬虫项目代码进行重构,提高代码扩展性和复用性
网络爬虫的概念
1、网络爬虫和浏览器的区别:浏览器是展示数据的,而网络爬虫是采集数据的
2、定义:模拟客户端发送请求获取响应数据,按照一定规则,自动从万维网上获取信息的程序
3、作用:从万维网上,获取我们需要的信息
requests使用三步骤:
1、导入模块
2、发送get请求,获取响应
3、从响应中获取数据
response常见属性:
response.text:响应str类型
response.encoding:二进制转换字符使用的编码
response.content:响应体bytes类型
BeautifulSoup对象介绍与创建
BeautifulSoup介绍:
BeautifulSoup是一个可以从HTML或xml文件中提取数据的python库
BeautifulSoup安装:
安装:pip install bs4
安装lxml:pip install lxml
BeautifulSoup对象:代表要解析珍格格文档树,它支持遍历文档树和搜索文档树中描述的大部分的方法。
BeautifulSoup对象的find方法
find方法的作用:搜索文档树
find(self,name=None,attrs=[],recursive=True,text=None,**kwargs)
参数:
name:标签名
attrs:属性字典
recursive:是否递归循环查找
text:根据文本内容查找
返回:
查找到第一个元素对象
Tag对象介绍:Tag对象对应于原始文档中的xml或HTML标签。Tag有很多方法和属性,可用遍历文档树和搜索文档树以及获取标签内容。
Tag对象常见属性:
name:获取标签名称
attrs:获取标签所有属性的键和值
text:获取标签的文本字符串
正则表达式的概念和作用
概念:正则表达式是一种字符串匹配的模式
作用:
检查一个字符串是否含有某种子串;
替换匹配的子串;
提取某个字符串中匹配的子串
re.findall()方法
API
re.findall(pattern,string,flags=0)[重点]
作用:扫描整个string字符串,返回所有与pattern匹配的列表
参数:
pattern:正则表达式
string:要查找的字符串
flags:匹配模式
返回:返回string中与pattern匹配的结果列表
findall()特点:(切记)
如果正则表达式中没有()则返回与整个正则匹配的列表;
如果正则表达式中有(),则返回()中匹配的内容列表,小括号两边的东西都是负责确定提取数据所在位置。
json模块介绍
json模块是python自带的模块,用于json与python数据之间的相互转换;
笔记总结:中国大学MOOC
python网络信息爬虫与信息提取
1、Requests:自动爬取HTML页面,自动网络请求提交
2、BeautifulSoup:解析页面
3、Re:正则表达式详解,提取页面关键信息
Re正则表达式
正则表达式
(1)通用的字符串表达框架
(2)简洁表达一组字符串的表达式
(3)针对字符串表达“简洁”和“特征”思想的工具
(4)判断某字符串的特征归属
正则表达式在文本处理中十分常用
(1)表达文本类型的特征(病毒、入侵等)
(2)同时查找或替换一组字符串
(3)匹配字符串的全部或部分
正则表达式的使用
编译:将符合正则表达式语法的字符串转换成正则表达式特征
正则表达式的语法:正则表达式语法由字符和操作符构成
正则表达式的常用操作符
操作符 | 说明 |
---|