Python爬虫之代理问题

为了爬虫换个头,我用python实现三种随机请求头方式! 教你用三种方式设置随机请求头, 爬虫设置请求头(user-agent)是必然的,那如何生成一个随机请求头这个也是我们爬虫必须掌握的, 读完本篇文章你就可以轻松掌握 ! 阅读详情

对于从事爬虫的程序猿来说,反爬策略是必不可少的,其中添加请求头就是反爬的一种最为简单的策略。还有就是使用代理ip,说白了就是采集数据时采用不同的ip去访问你要采集数据的网址,可能很多人都会问为什么我需要用代理呢?不用不可以吗?用了代理之后发现爬虫抓取数据的速度反而下降了不少于是放弃爬虫代理的使用。当你抓取的数据达到一定量后,或者大批量采集时,你会发现程序会时不时给你报错,而且频率越来越来高。这说你的爬虫被人家识别出来了,对方的反扒系统已经记住了你。通常会告诉你连接超时、连接中断更有甚者不会直接中断你程序,它会给你一些假数据或者将你的爬虫带入一个死循环,还有许多诸如此类的反扒措施这里就不一一介绍了。

User-Agent

这种方式可以理解为把自己的程序访问网站时时已浏览器的方式访问的,为了减少网站识别为爬虫,那么什么是User-Agent呢?
User-Agent是一个特殊字符串头,被广泛用来标示浏览器客户端的信息,使得服务器能识别客户机使用的操作系统和版本,CPU类型,浏览器及版本,浏览器的渲染引擎,浏览器语言等。
不同的浏览器(IE,FF,Opera, Chrome等)会用不同的用户代理字符串(User Agent Strings)作为自身的标志,当搜索引擎(Google,Yahoo,Baidu,Bing)在通过网络爬虫访问网页时,也会通过用户代理字符串来进行自身的标示,这也是为何网站统计报告能够统计浏览器信息,爬虫信息等。网站需要获取用户客户端的信息,了解网站内容在客户端的展现形式,一些网站通过判断UA来给不同的操作系统,不同的浏览器发送不同的页面,不过这也可能造成某些页面无法再某个浏览器中正常显示。
更多关于User-Agent的讲解参见:User Agent的学习

1.获取随机请求头 headers

详情请参考官网: fake-headers 1.0.2

    1. 安装pip install fake_header
pip install fake_headers
    1. 导入fake_headers并随机生成headers
>>> from fake_headers import Headers
>>> headers = Headers(headers=True).generate()
>>> headers
{'Accept': '*/*', 'Connection': 'keep-alive', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36', 'Accept-Encoding': 'gzip, deflate, br', 'Accept-Language': 'en-US;q=0.5,en;q=0.3', 'Upgrade-Insecure-Requests': '1', 'Referer': 'https://google.com', 'Pragma': 'no-cache'}

如果不想生成整个headers,也有单独生成User-Agent的插件!

2.获取随机User-Agent与使用

详情请参考官网: fake-useragent 0.1.11

  1. 安装pip install fake_useragent
pip install fake_useragent
  1. 导入fake_useragent并随机生成UserAgent
>>> from fake_useragent import UserAgent
>>> UserAgent().random
'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36'
3. User-Agent的使用
'''
将生成的随机User-Agent放入headers传入requests,get()中即可
'''
>>> import requests
>>> url = 'https://blog.youkuaiyun.com/Lin_Hv/article/details/106119568'
>>> req = requests.get(url=url, headers=headers)
>>> req
<Response [200]>
4.如果出现以下错误:
>>> from fake_useragent import UserAgent
>>> UserAgent().random
...
    raise FakeUserAgentError('Maximum amount of retries reached')
fake_useragent.errors.FakeUserAgentError: Maximum amount of retries reached

解决方案

>>> from fake_useragent import UserAgent
>>>> UserAgent(verify_ssl=False,use_cache_server=False).random
'Mozilla/5.0 (Windows NT 6.4; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2225.0 Safari/537.36'
(十三)python网络爬虫(理论+实战)——IP代理、构建IP代理池 本节主要是介绍了IP代理的相关知识,以及如何使用IP代理来解决封Ip的问题,并简单演示了如何构建自己的IP代理池。 阅读详情

相关推荐

银河麒麟V10SP1实战:5步搞定AD域登录(附Samba+Winbind配置详解)

本文提供银河麒麟V10 SP1操作系统无缝集成Windows AD域的实战指南。文章深入解析了Samba、Winbind与Kerberos三大核心组件的协作原理,并详细阐述了从环境准备、软件包安装、配置文件定制到执行加域及排错的全流程。特别针对2403等新版本提供了关键配置差异与避坑要点,旨在帮助企业运维人员实现高效、稳定的域环境登录与管理。

weixin_29269441的博客 289

python爬虫配置随机请求头headers伪装User-Agent

python爬虫随机headers伪装fake_useragent fake_useragent 库 调用方法ua.random可以随机返回一个headers(User-Agent) from fake_useragent import UserAgent # 下载:pip install fake-useragent import requests ua = UserAgent() ...

在职后端开发工程师的学习笔记 225

C++利用spdlog生成日志

C++利用spdlog生成日志下载编译spdlog配置并使用 环境:Win10-x64+VS2015 spdlog是一个快速的C++日志库,能够兼容C++11,具备快速、无需依赖第三方库、支持多线程、多平台的优良特性! 下载编译spdlog 1.第一步,下载spdlog 下载spdlog,下载地址:https://github.com/gabime/spdlog#header-only-version,从Github上下载zip压缩包。下载完成后会获取一个名为spdlog-1.x.zip的压缩包 2.第二步

weixin_42975610的博客 3216

游戏资源解包

010打开文件UnityFS 是 Unity 引擎用于存储模型、贴图、动画等数据。示例里能看到 2022.3.44f1 ,是 Unity 编辑器的版本号(2022 系列、3 子版本、44f1 补丁),说明文件由该版本 Unity 生成。使用StudioGUI解包发现无法识别,提示bundle加密常见的加密方式如下:http://Addressables.cn秘钥加密、转存二进制后自定义加密、文件头部添加这个需要对apk进行逆向找到解密逻辑。这里有个得到key后可以进行解密的项目。

m0_55282610的博客 5507

研一脑电小白日记 之 EEGLAB预处理实战指南

本文为脑电研究新手提供了一份详尽的EEGLAB预处理实战指南。从MATLAB与EEGLAB环境搭建、使用NeuracleEEGFileReader插件导入BDF格式数据开始,逐步讲解了电极定位、滤波、降采样、ICA去伪迹等核心步骤,旨在帮助初学者高效完成脑电数据预处理,为后续分析奠定坚实基础。

weixin_29230649的博客 555

Android ------ 开源的Modnet算法实现抠图和更换背景

Portrait Matting (sight-x.cn) 飞桨PaddlePaddle-源于产业实践的开源深度学习平台 GitHub - PaddlePaddle/PaddleSeg at develop

切切歆语的博客 1万+

python fake_useragent 伪造请求头

python fake_useragent 伪造请求头

weixin_59685936的博客 238

Redis 可视化工具 RedisInsight 的保姆级安装以及使用(最新)

Redis 可视化工具 RedisInsight 的保姆级安装以及使用(最新)

一名全栈小白的博客 1万+

爬虫 浏览器

使用python请求服务器很明显暴露了你不是普通用户,容易被封,所以需要把自己伪装成浏览器用户,需要伪装header信息,术语解释:user-agent: 说明操作系统和浏览器版本号, 如果是pathon爬虫,默认是python-requests/3.21.0referer: 从哪个网址点进来的,有些网站会实现防盗链,禁止被其他网站当图床cookie:存储登录信息headers = {‘User-Agent’:ua.random,‘Referer’:‘这里放入图片的主页面’}

change_fate的博客 986

零代码构建AI智能体:COZE可视化工作流实战指南

AI智能体(AI Agent)是当前人工智能领域的重要发展方向,它通过模块化设计和工作流驱动,使大语言模型从被动对话转向主动执行。其核心原理在于将复杂的任务分解为可规划、可执行的步骤,并调用外部工具(插件)完成闭环。这一技术价值在于显著降低了自动化流程的开发门槛,让非程序员也能构建实用的数字助手。典型的应用场景包括智能客服、内容自动生成、数据分析和跨系统业务流程自动化。本文以COZE平台为例,深入解析如何通过其直观的可视化界面和丰富的插件生态,像搭积木一样快速搭建如“早安简报生成器”等实用智能体,并分享指令

467

Abaqus数据导出技巧:轻松处理大量XY数据

通过上述三种方法,我们可以解决Abaqus中大量XY数据导出的问题。无论是使用插件、编写Python脚本,还是利用Abaqus的内置报告功能,都可以帮助我们高效地处理数据。希望这篇博客能够帮助到你,提高你在Abaqus使用过程中的数据处理效率。

m0_62153576的博客 1915

python爬虫代理的使用_Python爬虫代理是否使用成功问题

本人正在学习Python网络爬虫,是个初学者,在学习代理,想验证代理是否使用成功。想到的方法是使用代理访问我自己个人网站,然后通过nginx的访问日志access.log查看访问ip,以下为验证实例。 上图为我本地ip地址 上图为通过chrome浏览器访问个人网站显示的访问ip,正是我本地ip 然后我使用代理访问个人网站,访问是成功的,再去看访问ip时如下图 如上图,红色所圈为使用代理python...

weixin_39788572的博客 350

Flink上传的Jar包去了哪里?大数据

在使用Flink时,我们通常会将应用程序打包成Jar文件并将其上传到Flink集群以执行。总结起来,Flink上传的Jar包实际上会暂时存储在JobManager的本地文件系统中的一个临时目录中。在上传过程中,Flink会将Jar文件存储在JobManager的本地文件系统中的一个临时目录中。一般来说,Flink会在。希望本文对你解答了Flink上传的Jar包去了哪里的疑问,并且能够帮助你更好地理解Flink的工作原理。接下来,我们可以使用Flink命令行工具将Jar文件提交到Flink集群。

AlianBlank的博客 865

python爬虫代理出现计算机积极拒绝问题解决

学习爬虫代理中,出现了如下问题 from urllib.error import URLError from urllib.request import ProxyHandler,build_opener proxy = '127.0.0.1:9743' proxy_handler = ProxyHandler({ 'http':'http://' + proxy...

Omann的博客 5万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

python里面爬虫的代理问题_Python 3 爬虫切换代理问题

大家好!下面的提问非常小白,可能有很多描述不清楚的 ?。需求:我有 10 个付费的 HTTP 代理,希望可以一个 IP 抓取 100 次内容切换一次 IP(IP 的调取已经写好了)问题:不明白如何切换 IP实现效果(代码在最下面):每抓取 100 次后,cycle100 的值到达 99(起始值为 0),触发切换代理 IP 的代码。切换完成后接下来的 100 次爬取都是切换了的代理 IP。我的思路(...

weixin_40001048的博客 324

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Python3 爬虫--公司代理问题解决

废话好久没有造过轮子了,突发奇想解决一下一进公司写爬虫就遇到的代理的问题正文如果没有代理问题,如下代码就可以获取到网页 html 源码import urllib import urllib.request from bs4 import BeautifulSoupurl = "http://wintersmilesb101.online/"user_agent = 'Mozilla/4.0 (com

SmileSB101-(ZXB)的博客 4242

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

关于python爬虫代理ip设置proxies的问题

本人在学习爬虫的过程中学习如何设置代理ip,但是遇到了request请求中proxies参数编写的问题 首先必须知道proxies参数是一个字典类型 proxies={ 'http': 'http://xx.xx.xx.xx:xx' } 但是有的网站用的是http协议,有的是https,我们该怎么设置呢?我们来测试一下 这里有个检测访问ip的清洁版网址:http://icanhazip.com/ ...

歪歪的博客 3万+

python3爬虫使用代理爬取页面noscript标签问题

python3爬虫使用代理爬取页面noscript标签问题 操作 运行python爬虫,使用代理爬取网页 from urllib.error import URLError from urllib.request import ProxyHandler, build_opener url = 'https://www.baidu.com' proxy_handler = ProxyHandler({ 'http': 'http://127.0.0.1:8888', 'https':

xzlAwin的博客 1267

python 爬虫代理_python 爬虫 使用代理 的问题

刚刚在使用Python写爬虫,但是由于我在公司没有上网权限,所以借别人的账号用(opera 浏览器代理 可有上网),我将代理信息写在python脚本里面但是出现了下面的错误.代码:import urllib2proxy_info = {'user' : 'xxx' ,'pass' : 'xxxx' ,'host' : 'xx.xx.xx.xx' ,'port' : xx}# build a new...

weixin_39760967的博客 144

阻碍网络爬虫进行的原因有哪些?

HTTP网络协议与HTTPS协议是存在着差异的,这种差异也延长到了HTTP代理与HTTPS代理之中。要想了解这之中的区别,大家先来了解这两种互联网协议的各自特性。 1、HTTPS要用到SSL证书,而HTTP不用。 2、是明文传输协议,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP协议安全。 HTTPS比HTTP更为安全,对搜索引擎更为友好,利于SEO,谷歌、百度优先索引HTTPS网页。 3、HTTPS标准端口443,HTTP标准端口80。 4、HTTPS在浏览器显

Laicaling的博客 1087

Python 网络爬虫代理池的设计与实现

通过上述步骤,我们就完成了一个简单的Python网络爬虫代理池的设计与实现。当然,实际应用中可能还需要考虑更多的因素,比如代理IP的更新频率、代理IP的质量等等。但是,只要掌握了基本的设计思路和实现方法,就可以根据具体需求进行相应的调整和优化。```

2501_91226416的博客 221

爬虫代理ip地址_Python爬虫被禁?看看是不是这几个问题

Python爬虫在网上完成网站的信息采集时,常常出现无缘无故的ip被禁的情况,正爬取呢就没法继续了,造成日常业务也没办法正常进行了,整个人都不好了呢。一部分人完全不清楚被禁的原因,这么简单的就给禁掉了,究竟是哪个地方不对呢?首先,和大家介绍下Python爬虫的工作原理。Python爬虫是根据一些规则,自动抓取网络数据的程序或脚本,它能够快捷的实现采集、整理任务,极大的省去时间成本。因为Python...

weixin_39541844的博客 112

python网络爬虫技术-基于Python的网络爬虫技术综述

汪洋 姜新通【摘 要】人类社会已经进入大数据时代,这正在改变着我们的工作和生活。随着互联网的兴起和发展,同时也产生了各种对人类有价值的数据。快速搜索数据和充分利用数据信息已成为一个巨大挑战。这样的需求催生了搜索引擎的出现和发展,搜素引擎是用户获取网络信息的重要途径,给人们带来了极大的便利。然而,随着互联网的不断发展,搜索引擎已不能满足各个领域的需求了,因此网络爬虫技术就应运而生了。而Python作...

weixin_39806808的博客 3025

写python爬虫,你永远绕不过去代理问题

代理是一种中间人(赚差价的中间商)的角色 🧔,它帮助用户发送网络请求 💻,同时隐藏用户的真实身份 🕵️‍♂️。通俗的解释,就是你想去买某件见不得人的物品,自己不好意,然后请一个代理帮你完成这件事情。代理人替你发送请求,并将物品送到你制定的地址,卖家只知道有代理人,不知道你是谁。代理在网络中也是这样的工作方式,它代表用户发送请求,隐藏用户的真实身份。

梦想橡皮擦,专栏100例写作模式先行者,现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者 5118

7- Python 网络爬虫 —代理配置全解析:从主流库代理到企业级代理池构建的实战指南

以下从核心定位适用场景代理配置方式协议支持异步 / 同步浏览器交互能力典型应用案例库名称核心定位适用场景代理配置方式协议支持(代理 / 请求)异步 / 同步浏览器交互能力典型应用案例urllibPython 内置基础网络请求库无需额外依赖、追求轻量的简单 HTTP 请求场景通过配置代理HTTP/HTTPS 代理;仅 HTTP 协议同步无(纯请求库)快速脚本、系统级工具基础网络请求Requests简洁易用的同步请求库。

wh1236666的博客 1316
上一篇: 解决数据库unicode编码导致字符串读取问题
下一篇: 成功解决pandas报AttributeError: DataFrame object has no attribute ix错误
Thomas_Lean
博客等级 码龄9年 58粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值