实战Python网络爬虫
上QQ阅读APP看书,第一时间看更新

8.2 请求方式

Requests-HTML向网站发送请求的方法是来自Requests模块,但是Requests-HTML只能使用Requests的Session模式,该模式是将请求会话实现持久化,使这个请求保持连接状态。Session模式好比我们在打电话的时候,只要双方没有挂断电话,就会一直保持一种会话(连接)状态。Session模式对HTTP的GET和POST请求也是由get()和post()方法实现,具体的使用方法如下:

上述代码分别对同一个URL使用get()和post()方法,由于get()和post()方法都来自Requests模块,因此还可以对这两个方法设置相关的参数,如请求参数、请求头、Cookies、代理IP以及证书验证等。

Requests-HTML在请求过程中还做了优化处理,如果没有设置请求头,Requests-HTML就会默认使用源码里所定义的请求头以及编码格式。在Python的安装目录下打开Requests-HTML的源码文件(\Lib\site-packages\requests_html.py),定义了属性DEFAULT_ENCODING和DEFAULT_USER_AGENT,分别对应编码格式和HTTP的请求头,如图8-1所示。

图8-1 默认属性