当前位置: 移动技术网 > IT编程>脚本编程>Python > Python爬虫小技巧之伪造随机的User-Agent

Python爬虫小技巧之伪造随机的User-Agent

2018年09月23日  | 移动技术网IT编程  | 我要评论

生化危机4 来生,校服的裙摆txt下载,永泰莒溪大峡谷景区

前言

不管是做开发还是做过网站的朋友们,应该对于user agent一点都不陌生,user agent 中文名为用户代理,简称 ua,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、cpu 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等

在python爬虫的过程中经常要模拟useragent, 因此自动生成useragent十分有用

通过ua来判断不同的设备或者浏览器是开发者最常用的方式方法,这个也是对于python反爬的一种策略,但是有盾就有矛啊

写好爬虫的原则只有一条:

就是让你的抓取行为和用户访问网站的真实行为尽量一致

1、伪造ua字符串,每次请求都使用随机生成的ua

为了减少复杂度,随机生成ua的功能通过第三方模块库fake-useragent实现,使用pip进行安装

pip install fake-useragent

2、生成一个ua字符串只需要如下代码

from fake_useragent import useragent
 ua = useragent()

各浏览器的user-agent

这个库还有一个其他的功能,就是可以随机各浏览器的ua

ie浏览器的ua:

print(ua.ie)

mozilla/5.0 (windows; u; msie 9.0; windows nt 9.0; en-us)

opera浏览器的ua:

print(ua.opera)

opera/9.80 (windows nt 6.1; u; zh-cn) presto/2.6.37 version/11.00

chrome浏览器的ua:

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浏览器的ua:

print(ua.firefox)

mozilla/5.0 (windows nt 6.2; win64; x64; rv:16.0.1) gecko/20121011 firefox/16.0.1

safari浏览器的ua:

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

随机user-agent

写爬虫最实用的就是可以随意变换headers,一定要有随机性

在这里我写了三个随机生成ua,三次打印都不一样,随机性很强,十分方便

print(ua.random)
print(ua.random)
print(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 (macintosh; intel mac os x 10_10_1) applewebkit/537.36 (khtml, likegecko) chrome/37.0.2062.124 safari/537.36

mozilla/5.0 (macintosh; intel mac os x 10_9_0) applewebkit/537.36 (khtml, like gecko) chrome/32.0.1664.3 safari/537.36

当然,你如果不想这么用的话,你也可以自己搜集一些ua,存为文本文件,然后打开读取来用

附:常用的user-agent列表

user_agents = [
 "mozilla/4.0 (compatible; msie 6.0; windows nt 5.1; sv1; acoobrowser; .net clr 1.1.4322; .net clr 2.0.50727)",
 "mozilla/4.0 (compatible; msie 7.0; windows nt 6.0; acoo browser; slcc1; .net clr 2.0.50727; media center pc 5.0; .net clr 3.0.04506)",
 "mozilla/4.0 (compatible; msie 7.0; aol 9.5; aolbuild 4337.35; windows nt 5.1; .net clr 1.1.4322; .net clr 2.0.50727)",
 "mozilla/5.0 (windows; u; msie 9.0; windows nt 9.0; en-us)",
 "mozilla/5.0 (compatible; msie 9.0; windows nt 6.1; win64; x64; trident/5.0; .net clr 3.5.30729; .net clr 3.0.30729; .net clr 2.0.50727; media center pc 6.0)",
 "mozilla/5.0 (compatible; msie 8.0; windows nt 6.0; trident/4.0; wow64; trident/4.0; slcc2; .net clr 2.0.50727; .net clr 3.5.30729; .net clr 3.0.30729; .net clr 1.0.3705; .net clr 1.1.4322)",
 "mozilla/4.0 (compatible; msie 7.0b; windows nt 5.2; .net clr 1.1.4322; .net clr 2.0.50727; infopath.2; .net clr 3.0.04506.30)",
 "mozilla/5.0 (windows; u; windows nt 5.1; zh-cn) applewebkit/523.15 (khtml, like gecko, safari/419.3) arora/0.3 (change: 287 c9dfb30)",
 "mozilla/5.0 (x11; u; linux; en-us) applewebkit/527+ (khtml, like gecko, safari/419.3) arora/0.6",
 "mozilla/5.0 (windows; u; windows nt 5.1; en-us; rv:1.8.1.2pre) gecko/20070215 k-ninja/2.1.1",
 "mozilla/5.0 (windows; u; windows nt 5.1; zh-cn; rv:1.9) gecko/20080705 firefox/3.0 kapiko/3.0",
 "mozilla/5.0 (x11; linux i686; u;) gecko/20070322 kazehakase/0.4.5",
 "mozilla/5.0 (x11; u; linux i686; en-us; rv:1.9.0.8) gecko fedora/1.9.0.8-1.fc10 kazehakase/0.5.6",
 "mozilla/5.0 (windows nt 6.1; wow64) applewebkit/535.11 (khtml, like gecko) chrome/17.0.963.56 safari/535.11",
 "mozilla/5.0 (macintosh; intel mac os x 10_7_3) applewebkit/535.20 (khtml, like gecko) chrome/19.0.1036.7 safari/535.20",
 "opera/9.80 (macintosh; intel mac os x 10.6.8; u; fr) presto/2.9.168 version/11.52",
]

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对移动技术网的支持。

原文链接:

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网