pathon爬虫中简单的请求头fake_useragent库,处理反爬问题

安装

pip3 install fake_useragent

各浏览器User-Agent的值

from fake_useragent import UserAgent
ua = UserAgent()
# ie浏览器的user agent
print(ua.ie)
Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)
#opera浏览器
print(ua.opera)
Opera/9.80 (X11; Linux i686; U; ru) Presto/2.8.131 Version/11.11
#chrome浏览器
print(ua.chrome)
Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/22.0.1216.0 Safari/537.2
#firefox浏览器
#firefox浏览器
print(ua.firefox)
Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:16.0.1) Gecko/20121011 Firefox/16.0.1
#safri浏览器
print(ua.safari)
Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25

实用性

写到这里大家会发现写爬虫最实用的是可以随意变换headers,一定要有随机性。在这里我写了三个随机生成user agent,三次打印都不一样,随机性很强,十分方便。

from fake_useragent import UserAgent
ua = UserAgent()
print(ua.random)
print(ua.random)
print(ua.random)
Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:15.0) Gecko/20100101 Firefox/15.0.1
Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:16.0.1) Gecko/20121011 Firefox/16.0.1
Opera/9.80 (X11; Linux i686; U; ru) Presto/2.8.131 Version/11.11

爬虫中具体使用方法

import requests
from fake_useragent import UserAgent
ua = UserAgent()
headers = {'User-Agent': ua.random}
url = '待爬网页的url'
resp = requests.get(url, headers=headers)
#省略具体爬虫的解析代码,大家可以回去试试
...

看到这里不禁会有疑问,一个请求头怎么可能称为必杀技,那么,随机的请求头外加上设置睡眠,随机发起请求呢?

昨天爬一个网站一直被封ip感觉代理池整了1000个ip还是会被封,甚至出现爬取数据不完整的情况,一直纠结于如何获取并且验证更高效的代理ip的思路无解,浏览网页时候无意中点击网页想到爬虫是以固定速度访问,即便是设置了延时,很容易根据这一点被判定为爬虫,那么设置睡眠是很好的选择,再加上随机的请求头,只用了不到20个代理ip很完美的解决了问题。遇到问题,一条路走不通的时候换一条路也是可以的,原则只有一条,浏览器能访问的内容,爬虫肯定能抓取,关键在于能不能让自己的爬虫伪装的更像浏览器。


链接:https://www.jianshu.com/p/b76df35aec93
 

猜你喜欢

转载自blog.csdn.net/u014535666/article/details/83421651