欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-05-20 12:05:43
前言 不管是做开发还是做过网站的朋友们,应该对于user agent一点都不陌生,user agent 中文名为用户代理,简称 ua,它是一个特殊字符串头,使得服务器能够...

前言

不管是做开发还是做过网站的朋友们,应该对于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",
]

总结

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

原文链接: