关于python爬虫的ua设置

无论使用requests还是httpx其实不设置ua也是可以跑的,只不过跑的时候是默认的ua,但是对于一些设置了防火墙或者有防御性质的cdn来说,默认的ua是肯定进不去的。所以我们今天来聊聊关于爬虫的ua的设置问题。

ua全名是user-agent,其实就是我们常说的协议头。
比如百度spider的ua就是:Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)
常见的浏览器ua是:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36

常规来说如果我们爬虫不是很频繁,那我们可以将ua设置成固定的常见浏览器ua就可以避过站长的巡查,但是如果频繁,站长可能为了保证服务器正常运行,还是有可能将我们的ip和ua禁掉的。

ip被禁我们就不聊了,可以直接用代理解决,但是ua怎么办?
推荐个库faker,这个库其实就是个协议头合集,我们通过设置可以每次变换一个ua,这样配合代理就不可能将我们所有的爬虫都封掉了。

代码如下:

from faker import Faker
uas = Faker()
ua=uas.user_agent()

ua=uas.user_agent()为获取随机ua的代码,将这行放到get请求前,然后替换headers中的ua就好。

演示代码:

import requests
from faker import Faker
uas = Faker()
links = ['','','']

for url in links:
	ua=uas.user_agent()
	headers = {'user-agent': ua}
	res=requests.get(url,headers=headers,proxies=proxies)
	r=res.text

这样就可以实现每次请求ip和ua都不同,从而避免被封的问题

你可能感兴趣的:(python,爬虫,开发语言)