1. 构造合理的 HTTP 请求头
除了处理网站表单,requests 模块还是一个设置请求头的利器。HTTP 的请求头是在你每次向网络服务器发送请求时,传递的一组属性和配置信息。HTTP 定义了十几种古怪的请求头类型,不过大多数都不常用。只有下面的七个字段被大多数浏览器用来初始化所有网络请求(表中信息是我自己浏览器的数据)
请求头可以通过 requests 模块进行自定义。https://www.whatismybrowser.com/ 网站就是一个非常棒的网站,可以让服务器测试浏览器的属性。我们用下面的程序来采集这个网站的信息,验证我们浏览器的 cookie 设置:
以request包为例:
在这里可以使用user_agents.txt中的任意一个user-agent来达到模拟访问的效果,另外也可以建立一个useragent池
比如百度页面,下拉的时候通过浏览器自带的network可以看到有个useragent
通过agent池的方式的例子:
def get_agent():
#模拟header的user-agent字段