python 3.6.6安装fake_Python3 fake_useragent 模块的使用和报错解决方案
在使用 Python 做爬虫的时候,我们需要伪装头部信息骗过网站的防爬策略,Python 中的第三方模块 fake_useragent 就很好的解决了这个问题,它将给我们返回一个随机封装了好的头部信息,我们直接使用即可
fake_useragent 的使用
安装 fake_useragent
pip install fake_useragent
示例:
from fake_useragent import UserAgent
# 实例化 UserAgent 类
ua = UserAgent()
# 对应浏览器的头部信息
print(ua.ie)
print(ua.opera)
print(ua.chrome)
print(ua.firefox)
print(ua.safari)
# 随机返回头部信息,推荐使用
print(ua.random)
运行结果:
(adnice) adnice:Downloads zhangyi$ python3 fake.py
Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.1; SLCC1; .NET CLR 1.1.4322)
Opera/9.80 (Windows NT 6.1; U; fi) Presto/2.7.62 Version/11.00
Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1500.55 Safari/537.36
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:23.0) Gecko/20131011 Firefox/23.0
Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27
Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.2117.157 Safari/537.36
fake_useragent 报错及解决方案
报错信息:
socket.timeout: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "d:\programdata\anaconda3\lib\site-packages\fake_useragent\utils.py", lin
e 166, in load
verify_ssl=verify_ssl,
File "d:\programdata\anaconda3\lib\site-packages\fake_useragent\utils.py", lin
e 122, in get_browser_versions
verify_ssl=verify_ssl,
File "d:\programdata\anaconda3\lib\site-packages\fake_useragent\utils.py", lin
e 84, in get
raise FakeUserAgentError('Maximum amount of retries reached')
fake_useragent.errors.FakeUserAgentError: Maximum amount of retries reached
首先找出关键报错信息:
fake_useragent.errors.FakeUserAgentError: Maximum amount of retries reached
大概意思是:这个模块尝试请求一个东西已达到最大重试次数
打开这个模块的源码进行查看发现这个库会引用在线资源,所以这个模块是进行几次尝试请求一个网站的 Json 数据,但是因为各种原因请求超时,所以就会报这个错误
fake_useragent\settings.py
# -*- coding: utf-8 -*-
from __future__ import absolute_import, unicode_literals
import os
import tempfile
__version__ = '0.1.11'
DB = os.path.join(
tempfile.gettempdir(),
'fake_useragent_{version}.json'.format(
version=__version__,
),
)
CACHE_SERVER = 'https://fake-useragent.herokuapp.com/browsers/{version}'.format(
version=__version__,
)
BROWSERS_STATS_PAGE = 'https://www.w3schools.com/browsers/default.asp'
BROWSER_BASE_PAGE = 'http://useragentstring.com/pages/useragentstring.php?name={browser}' # noqa
BROWSERS_COUNT_LIMIT = 50
REPLACEMENTS = {
' ': '',
'_': '',
}
SHORTCUTS = {
'internet explorer': 'internetexplorer',
'ie': 'internetexplorer',
'msie': 'internetexplorer',
'edge': 'internetexplorer',
'google': 'chrome',
'googlechrome': 'chrome',
'ff': 'firefox',
}
OVERRIDES = {
'Edge/IE': 'Internet Explorer',
'IE/Edge': 'Internet Explorer',
}
HTTP_TIMEOUT = 5
HTTP_RETRIES = 2
HTTP_DELAY = 0.1
解决方案:
首先第一步要进行更新 fake_useragent
pip install --upgrade fake_useragent
1. 在实例化的时候指定一些参数
禁用服务器缓存
ua = UserAgent(use_cache_server=False)
不缓存数据
ua = UserAgent(cache=False)
忽略ssl验证
ua = UserAgent(verify_ssl=False)
一般的话,通过上述解决方案都能解决了,但是我就比较悲催了,还是没解决…
2. 使用临时 Json 文件
在 fake_useragent\settings.py 发现了几个 URL,其中有一些是打不开的,所以,我们将能打开的 URL 的 Json 文件保存在本地
wget https://fake-useragent.herokuapp.com/browsers/0.1.11
这时我们就会得到一个 0.1.11 的文件,将文件名改为 fake_useragent_0.1.11.json
mv 0.1.11 fake_useragent_0.1.11.json
然后找到我们的临时文件目录(每个系统都不一样,例如 Ubuntu 在 /tmp 下)
(edison) adnice:T zhangyi$ python3
Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 16:52:21)
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import tempfile
>>> tempfile.gettempdir()
'/var/folders/6_/p67xz49j5wd5lzx7s2cz1cdr0000gn/T'
>>>
最后将文件拷贝到临时目录中即可
cp fake_useragent_0.1.11.json /var/folders/6_/p67xz49j5wd5lzx7s2cz1cdr0000gn/T/
当我们再次实例化 UserAgent 的时候,就会先读取本地的临时文件,这样实例化的时候就不会报错了
参考文章:https://blog.csdn.net/huiyanshizhu/article/details/84952093
————————————————
版权声明:本文为CSDN博主「极客点儿」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yilovexing/article/details/89044980
python 3.6.6安装fake_Python3 fake_useragent 模块的使用和报错解决方案相关推荐
- kali linux 安装 Mysql Can‘t read from messagefile 报错解决方案
kali linux 安装 Mysql Can't read from messagefile 报错解决方案 参考文章: (1)kali linux 安装 Mysql Can't read from ...
- Python 使用cv2模块 进入视觉识别的报错,报错信息为AttributeError: module ‘cv2.cv2‘ has no attribute ‘bgsegm
Python 使用cv2模块 进入视觉识别的报错,报错信息为AttributeError: module 'cv2.cv2' has no attribute 'bgsegm 问题描述--cv2模块 ...
- cmd输入pip报错_安装虚拟环境+pip安装XXX包的常见操作与报错解决
安装虚拟环境+pip安装XXX包的常见操作与报错解决blog.csdn.net 文章目录: 一.开始前提 二.安装虚拟环境的常见操作 三.pip 的命令的常见操作:安装.更新.卸载.指定源 四.安装 ...
- CentOS7.3+python:zipimport.ZipImportError: can't decompress data; zlib not available报错
文章目录 CentOS7.3+python:zipimport.ZipImportError: can't decompress data; zlib not available报错 一.前言 二.升 ...
- jeston nano安装torch和torchvision及几个报错原因解决方法
本人是第一次使用jeston nano,下载torch和torchvision碰了很多壁,因此这里把经验教训写下来,希望能帮助到像我一样的小白,让大家少走点弯路,由于第一次在csdn编辑,格式不美观, ...
- CentOS 6安装Oracle报错解决方案
CentOS 6安装Oracle报错解决方案 参考文章: (1)CentOS 6安装Oracle报错解决方案 (2)https://www.cnblogs.com/lonecloud/p/689568 ...
- yum安装出现Error: Package: glibc-headers-2.17-157.el7.x86_64 (centos7.3)类似报错解决方案
yum安装出现Error: Package: glibc-headers-2.17-157.el7.x86_64 (centos7.3)类似报错解决方案 参考文章: (1)yum安装出现Error: ...
- IDEA添加模块时,插件报错:java.util.NoSuchElementException Collection is empty
IDEA添加模块时,插件报错:java.util.NoSuchElementException: Collection is empty. 解决方法一: 根据github上面的提示说是要在插件中添加设 ...
- please reinstall the mysql distribution_php安装扩展mysqli的实现步骤及报错解决办法
php安装扩展mysqli的实现步骤及报错解决办法 terminal#cd php-5.3.6/ext/mysqli #/usr/local/webserver/php/bin/phpize #./c ...
最新文章
- java logback 使用_Java | Logback的使用配置
- 一个关于VOFM的文章
- Nature论文解读:用于改善加权生物网络信噪比的网络增强方法
- ORACLE安装请注意事项
- 初识Microsoft Hyper-v Server
- python unpack_ip地址处理每天10行python代码系列
- 31模板方法(Template Method)
- python进程通信方式有几种_python全栈开发基础【第二十一篇】互斥锁以及进程之间的三种通信方式(IPC)以及生产者个消费者模型...
- C#用注册表开机自动启动某某软件
- 文档屏幕水印_您的文档何时需要屏幕截图?
- python2和3搭建,pip2和pip3的安装
- 已知直角三角形的周长,求可以构成三角形的情况
- 如何使用腾讯云服务器搭建个人网站?
- 锤子变天?| 畅言]
- #ACCV2022还有两周截稿#疫情过后期待相聚澳门,相邀参与亚洲视觉盛会
- 用Windows自带的画图软件拼接(合成)多张图片
- 根据运单号查询快递物流详情
- 多传感器融合定位三-3D激光里程计其三:点云畸变补偿
- 【Database-02】达梦数据库 - DM Manager管理工具安装
- ORACLE表有逻辑坏块时EXPDP导出报错排查
热门文章
- 视觉笔记:产品设计速写_图标设计:速写Vs展示。 准备
- tpcc-mysql安装_tpcc-mysql 安装及使用
- 全景丨0基础学习VR全景制作,平台篇第19章:热点功能-文本
- 全球及中国生狗粮行业需求潜力及未来前景战略研究报告2021年版
- redis分布式锁:Redisson(看门狗的底层代码实现)
- 一件真实感人的动物故事
- (一)人工智能大纲摘要:《人工智能发展白皮书-技术架构篇(2018年9月)》
- 小程序代理商为什么做不起来,7种拓客方法解决困惑
- python123外汇兑换计算器_python day03习题
- html顶部边距代码_html5右边距