在爬行动物的使用中,网站最简单的反爬行动物是验证发出请求的客户端是否为浏览器,因此需要爬行动物模拟浏览器向网站发出请求。
这里介绍fake_useraent
1、伪造用户代理字符串,每个请求使用随机生成的用户代理
为了降低复杂度,随机生成UA的功能由第三方模块库fake-user代理实现,用pip实现
pip install fake -用户代理
要生成useragen字符串,需要以下代码
from fake _ useragentimportuseragent
ua=用户代理()
每个浏览器的用户-代理
该库还具有其他可以随机使用每个浏览器的useragen的功能。
打印(ua.ie ) )。
Mozilla/5.0(windows; u; MSIE 9.0; Windows NT 9.0; en-US )
Opera浏览器用户:
打印(ua.opera ) )。
Opera/9.80(windowsnt6.1; u; zh-cn (presto/2.6.37 version/11.00
Chrome浏览器的useragen :
打印(ua.chrome ) )。
Mozilla/5.0(windowsnt6.1 ) apple WebKit/537.2 (khtml,like Gecko ) Chrome/22.0.1216.0 Safari/537.2
Firefox浏览器用户:
打印(ua.Firefox ) )。
Mozilla/5.0(windowsnt6.2; Win64; x64; rv:16.0.1 ) Gecko/20121011 Firefox/16.0.1
Safari浏览器用户:
打印(ua.safari ) )。
Mozilla/5.0(ipad; CPU OS6_0like ma cosx (apple WebKit/536.26 (khtml,like Gecko ) version/6.0 mobile/10a 5355 d safari/8536.25
随机用户代理
写爬虫最实用的是可以自由变换headers,需要随机性
我在这里写了三个随机生成UA,三次的打印都不一样,随机性很强,很方便
打印(ua.random ) )。
打印(ua.random ) )。
打印(ua.random ) )。
Mozilla/5.0(x11; CrOS i686 3912.101.0 ) appleWebKit/537.36(khtml,like Gecko ) chrome/27.0.1453.116 safari/537.36
Mozilla/5.0 (MAC OS; Intel Mac OS X 10_10_1) appleWebKit/537.36(khtml,likeGecko ) chrome/37.0.2062.124 safari/537.36
Mozilla/5.0 (MAC OS; Intel Mac OS X 10_9_0) appleWebKit/537.36(khtml,like Gecko ) chrome/32.0.1664.3 safari/537.36
Ps :也可以自己写用户列表,random作为用户代理使用
这里是代码示例:
#爬网用url
from fake _ useragentimportuseragent
from bs4 import *
导入请求
url='http://baidu.com '
ua=用户代理()
a=ua.random #随机的一个用户代理
头儿={
'用户代理' : a
}
RES=requests.get(URL,headers=headers ) #获取web内容
t=res.text #返回的响应字符串
#在此模拟时,只需填写用户代理字段