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

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

通过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,存为文本文件,然后打开读取来用

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Python绿色通道

Python爬取大量数据时,如何防止IP被封

继续老套路,这两天我爬取了猪八戒上的一些数据 网址是:http://task.zbj.com/t-ppsj/p1s5.html,可能是由于爬取的数据量有点多吧,...

2054
来自专栏拂晓风起

word 2007 不同章节插入不同样式的页码,不同的页眉

912
来自专栏iOSDevLog

Python 刷简书的浏览量 阅读数端午节快乐。熬夜看世界杯,先刷到 10k 吧。简易爬虫 common.py

26315
来自专栏FreeBuf

看我如何通过邮箱获取IP定位

还记得那些年,邮箱钓鱼盛行,各种广告邮件钓鱼邮件层出不穷,经过邮箱防水墙能拦截一部分以外,你是否注意到了正常邮箱可能被有心人利用的姿势?本文将用一个比较难以察觉...

5901
来自专栏SeanCheney的专栏

Scrapy使用随机IP代理

第一步,先用不用代理的方式从西刺代理抓几个可用的IP,用Python的telnetlib库对其进行验证,将可用且速度够快的IP存入Redis和一个txt文件: ...

4556
来自专栏Hadoop实操

如何为服务器硬盘配置RAID或JBOD模式

在部署Hadoop平台的过程中,一般会要求数据盘配置RAID 0或者JBOD模式(直通模式),本文将详细讲解如何在HP dl380 Gen9服务器上配置RAID...

5.3K2
来自专栏北京马哥教育

从零开始的 Python 爬虫速成指南

序 本文主要内容:以最短的时间写一个最简单的爬虫,可以抓取论坛的帖子标题和帖子内容。 本文受众:没写过爬虫的萌新。 入门 0.准备工作 需要准备的东西: Pyt...

3926
来自专栏iOSDevLog

简书浏览量

1795
来自专栏数据小魔方

同时用R语言和Python爬取知乎美图

学习Python已有两月有余,是时候检验下学习效果了,之前练习了不少R语言数据爬取,Python的爬虫模块还没有来得及认真入门,乱拼乱凑就匆忙的开始了,今天就尝...

3705
来自专栏用户画像

第23章 TCP基本原理

    TCP协议使用三次握手机制建立连接,其中被请求方在第二次握手时需应答的关键信息及其作用是(A)。

1273

扫码关注云+社区

领取腾讯云代金券