Python爬虫之UserAgent的使用实例


Posted in Python onFebruary 21, 2019

问题: 在Python爬虫的过程中经常要模拟UserAgent, 因此自动生成UserAgent十分有用, 最近看到一个Python库(fake-useragent),可以随机生成各种UserAgent, 在这里记录一下, 留给自己爬虫使用。

安装 pip install fake-useragent

使用案例

基本使用

from fake_useragent import UserAgent
ua = UserAgent()
ua.ie
# Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US);
ua.msie
# Mozilla/5.0 (compatible; MSIE 10.0; Macintosh; Intel Mac OS X 10_7_3; Trident/6.0)'
ua['Internet Explorer']
# Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; GTB7.4; InfoPath.2; SV1; .NET CLR 3.3.69573; WOW64; en-US)
ua.opera
# Opera/9.80 (X11; Linux i686; U; ru) Presto/2.8.131 Version/11.11
ua.chrome
# Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/22.0.1216.0 Safari/537.2'
ua.google
# Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/537.13 (KHTML, like Gecko) Chrome/24.0.1290.1 Safari/537.13
ua['google chrome']
# Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11
ua.firefox
# Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:16.0.1) Gecko/20121011 Firefox/16.0.1
ua.ff
# Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:15.0) Gecko/20100101 Firefox/15.0.1
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
# and the best one, random via real world browser usage statistic
ua.random

注意:

fake-useragent 将收集到的数据缓存到temp文件夹, 例如 /tmp, 更新数据:

from fake_useragent import UserAgent
ua = UserAgent()
ua.update()

有时候会因为网络或者其他问题,出现异常(fake_useragent.errors.FakeUserAgentError: Maximum amount of retries reached), 可以禁用服务器缓存(从这里踩了一个坑, 没仔细看文档的锅):

from fake_useragent import UserAgent
ua = UserAgent(use_cache_server=False)

可以自己添加本地数据文件(v0.1.4+)

import fake_useragent
# I am STRONGLY!!! recommend to use version suffix
location = '/home/user/fake_useragent%s.json' % fake_useragent.VERSION
ua = fake_useragent.UserAgent(path=location)
ua.random

其他功能用到的也不是很多,详细见文档吧。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
Python捕捉和模拟鼠标事件的方法
Jun 03 Python
在Linux下使用Python的matplotlib绘制数据图的教程
Jun 11 Python
python实现发送和获取手机短信验证码
Jan 15 Python
Python首次安装后运行报错(0xc000007b)的解决方法
Oct 18 Python
Django自定义分页与bootstrap分页结合
Feb 22 Python
Python实现两个list对应元素相减操作示例
Jun 09 Python
详解Python实现多进程异步事件驱动引擎
Aug 25 Python
Python删除Java源文件中全部注释的实现方法
Aug 30 Python
基于循环神经网络(RNN)实现影评情感分类
Mar 26 Python
Pycharm 字体大小调整设置的方法实现
Sep 27 Python
详解Python的爬虫框架 Scrapy
Aug 03 Python
刚学完怎么用Python实现定时任务,转头就跑去撩妹!
Jun 05 Python
利用python实现在微信群刷屏的方法
Feb 21 #Python
Python实现微信自动好友验证,自动回复,发送群聊链接方法
Feb 21 #Python
使用python itchat包爬取微信好友头像形成矩形头像集的方法
Feb 21 #Python
对python借助百度云API对评论进行观点抽取的方法详解
Feb 21 #Python
用python实现刷点击率的示例代码
Feb 21 #Python
Python快速转换numpy数组中Nan和Inf的方法实例说明
Feb 21 #Python
python根据文章标题内容自动生成摘要的实例
Feb 21 #Python
You might like
用PHP调用Oracle存储过程的方法
2008/09/12 PHP
php中0,null,empty,空,false,字符串关系的详细介绍
2013/06/20 PHP
使用PHP生成PDF方法详解
2015/01/23 PHP
jQuery获取json后使用zy_tmpl生成下拉菜单
2015/03/27 PHP
PHP版微信第三方实现一键登录及获取用户信息的方法
2016/10/14 PHP
解读IE和firefox下JScript和HREF的执行顺序
2008/01/12 Javascript
JS 判断undefined的实现代码
2009/11/26 Javascript
js选取多个或单个元素的实现代码(用class)
2012/08/22 Javascript
javascript日期对象格式化为字符串的实现方法
2014/01/14 Javascript
原生JS绑定滑轮滚动事件兼容常见浏览器
2014/06/30 Javascript
JavaScript中的无阻塞加载性能优化方案
2014/10/10 Javascript
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
2016/12/14 Javascript
JS实现图片高斯模糊切换效果的焦点图实例
2017/01/21 Javascript
js学习总结_基于数据类型检测的四种方式(必看)
2017/07/04 Javascript
微信小程序 共用变量值的实现
2017/07/12 Javascript
浅谈vue的几种绑定变量的值 防止其改变的方法
2018/03/01 Javascript
Array数组对象中的forEach、map、filter及reduce详析
2018/08/02 Javascript
antd组件Upload实现自己上传的实现示例
2018/12/18 Javascript
微信小程序监听用户登录事件的实现方法
2019/11/11 Javascript
Vue 实现v-for循环的时候更改 class的样式名称
2020/07/17 Javascript
[51:22]Fnatic vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python制作一个桌面便签软件
2015/08/09 Python
Python比较2个时间大小的实现方法
2018/04/10 Python
python3 爬取图片的实例代码
2018/11/06 Python
Python多线程爬取豆瓣影评API接口
2019/10/22 Python
Python HTMLTestRunner库安装过程解析
2020/05/25 Python
浅谈Keras中shuffle和validation_split的顺序
2020/06/19 Python
python openCV自制绘画板
2020/10/27 Python
python两种获取剪贴板内容的方法
2020/11/06 Python
基于第一个PhoneGap(cordova)的应用详解
2013/05/03 HTML / CSS
Belvilla法国:休闲度假房屋出租
2020/10/03 全球购物
文科生自我鉴定
2014/02/15 职场文书
行政部工作岗位职责范本
2014/03/05 职场文书
党员群众路线教育实践活动剖析材料
2014/10/10 职场文书
校长新学期致辞
2015/07/30 职场文书
68句权威创业名言
2019/08/26 职场文书