关联工具 / 知识
**requests**
- 用来实现 HTTP 请求的收发
- requests 库
**beautiful soup4**
/**bs4**
- 用来快速从 html 网页中提取数据
**lxml**
- 解析库,比
bs4
使用的 py 自带的解析器更强更快
- 解析库,比
正则表达式
- 请求网页(并且获得数据)
- 处理和分析数据(筛选出我们需要的内容)
- 储存数据
请求网页
这里使用 python 的第三方库 requests ,利用 python 的包管理工具 pip 安装:
pip3 install requests
接下来就可以在代码中import requests
了。
requests 库的学习笔记
requests 库
有了 requests 库,我们就有了和网站交互的能力。
在本文中,我们用resp
来作为存储 response 的对象,通过检查状态码来判断请求是否成功。
需要验证才能访问的内容
有时候,网页的一些内容需要“登录”状态才能访问,而这种情况下我们需要模拟这个“登录”状态。
简单情况下,我们只需要在浏览器中获取登录以后发送的所有报文中,在header
中的cookie
,并把它塞到requests
的对应请求函数中即可。当然,这种方法并不是通用的。如果网站验证所使用的cookie
具有时效性,那我们就需要用别的手段来实时获取cookie
,如模拟登录等。
但即使我们有了模拟登录的手段,由于requests
中发送的请求是彼此独立的,即不存在继承关系或者关联性,就好比你在一个浏览器里发送一个请求以后又换了一台电脑。这时登录就不再具有意义,所以我们需要使用requests
中的session
来消除这个问题。
处理和分析数据
通过上一步,我们已经能够捞到目标网页上的数据了,现在就需要从这片汪洋大海中找到我们需要的东西并做进一步处理,在这个过程中我们会用到bs4
。
bs4 库bs4
更多的是为了处理html
数据而使用的,但在某些动态修改的网页中,获取信息后更新网页这一步是在本地完成的,这时候用bs4
去解析会稍显困难。
比如,我们需要用POST
请求第二页的信息,这时网页后端可能会发送包含第二页信息JSON
数据的响应,这时候我们可以选择直接解析JSON
来获取信息。