(异步爬虫)requests和aiohttp中代理IP的使用

简谈异步爬虫aiohttp 之前涉及到的爬虫,都基本上使用的requests库进行爬取。但是request获取网站内容的话,是有相应时间的,要不然也不会设置timeout了。但是,响应时间内,程序也在等待,响应时间越长等待时间就相对变长。因为python的自身原因多线程就不做最优选了(但是我很喜欢用=)),多进程则是利用cpu的多核在同一时间内进行多个任务。因此就该引出一个概念——协程coroutine。 阅读详情
AI摘要

本文介绍如何在requests和aiohttp中使用代理IP。通过设置proxies参数,requests可以轻松切换代理;而aiohttp则需用proxy参数,并解决HTTPS访问问题。

(异步爬虫)requests和aiohttp中代理IP的使用


爬虫要想爬的好,IP代理少不了。。现在网站基本都有些反爬措施,访问速度稍微快点,就会发现IP被封,不然就是提交验证。下面就两种常用的模块来讲一下代理IP的使用方式。话不多说,直接开始。


requests中代理IP的使用:
requests中使用代理IP只需要添加一个proxies参数即可。proxies的参数值是一个字典,key是代理协议(http/https),value就是ip和端口号,具体格式如下。

try:
    response = requests.get('https://httpbin.org/ip', headers=headers, 
    	proxies={'https':'https://221.122.91.74:9401'}, timeout=6)
    print('success')
    # 检测代理IP是否使用成功
    # 第一种方式,返回发送请求的IP地址,使用时要在 get() 添加 stream = True
    # print(response.raw._connection.sock.getpeername()[0])
    # 第二种方式,直接返回测试网站的响应数据的内容
    print(response.text)
except Exception as e:
    print('error',e)

在这里插入图片描述
注意: peoxies的key值(http/https)要和url一致,不然会直接使用本机IP直接访问。

aiohttp中代理IP的使用:
由于requests模块不支持异步,迫不得已使用aiohttp,掉了不少坑。
它的使用方式和requests相似,也是在get()方法中添加一个参数,但此时的参数名为proxy,参数值是字符串,且字符串中的代理协议,只支持http,写成https会报错。
这里记录一下我的纠错历程。。
首先根据网上的使用方式,我先试了一下下面的代码。

async def func():
    async with aiohttp.ClientSession() as session:
        try:
            async with session.get("https://httpbin.org/ip", headers=headers, 
            			proxy='http://183.220.145.3:80', timeout=6) as response:
                page_text = await response.text()
                print('success')
                print(page_text)
        except Exception as e:
            print(e)
            print('error')

if __name__=='__main__':
    asyncio.run(func())

在这里插入图片描述
修改后,再来

async def func():
    con = aiohttp.TCPConnector(verify_ssl=False)
    async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=False)) as session:
        try:
            async with session.get("https://httpbin.org/ip", headers=headers, 
            proxy='http://183.220.145.3:80', timeout=6) as response:
                # print(response.raw._connection.sock.getpeername()[0])
                page_text = await response.text()
                print(page_text)
                print('success')
        except Exception as e:
            print(e)
            print('error')

在这里插入图片描述
在这里插入图片描述
非但没有解决反倒多了一个警告,好在改一下就好。额~懒得粘了,直接来最终版本吧。。

# 修改事件循环的策略,不能放在协程函数内部,这条语句要先执行
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
async def func():
	# 添加trust_env=True
    async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(ssl=False), trust_env=True) as session:
        try:
            async with session.get("https://httpbin.org/ip", headers=headers,
             proxy='http://183.220.145.3:80', timeout=10) as response:
                page_text = await response.text()
                print(page_text)
                print('success')
        except Exception as e:
            print(e)
            print('error')

在这里插入图片描述
虽然纠错过程有点长,但好在知道怎么用了。

对于刚入门 Python 或是想要入门 Python 的小伙伴,可以通过下方小卡片联系作者,一起交流学习,都是从新手走过来的,有时候一个简单的问题卡很久,但可能别人的一点拨就会恍然大悟,由衷的希望大家能够共同进步。另外还有本人整理的近千套模板,百本优质电子书资源,等你领取!

👇🏻 关注小卡片,一起学习Python,领取资料👇🏻
Python高级特性与网络爬虫(四):异步多协程维护代理池 在做爬虫的时候,如果我们过于频繁地访问某个网站,可能会导致我们的ip被封掉,在这个时候我们需要代理来伪装自己的ip,网上的代理服务有很多,免费的和收费的都有。这些ip有的时候不太稳定,所以我们需要维护一个能够实时从代理服务网站上爬取代理ip并测试其是否可用,选取可用ip,这就需要爬取和测试一个代理池。这篇博文讲述的就是这样一个代理池的构造方法,主要涉及到的有python与redis缓存数据库的交互... 阅读详情

相关推荐

Python爬虫实战:高效抓取应用商店APP分类数据

网络爬虫作为数据采集的核心技术,通过模拟浏览器行为自动获取网页数据。其工作原理主要基于HTTP协议请求响应机制,配合HTML解析技术提取结构化信息。在移动互联网领域,爬虫技术能高效获取应用商店的APP分类、下载量、评分等关键数据,为市场分析、竞品监测提供数据支撑。本次实战采用Python技术栈,结合requests、BeautifulSoup等工具实现高可用爬虫系统,重点解决动态渲染、反爬机制等工程难题。通过代理IP池、请求间隔控制等技术手段,确保数据采集的稳定性和合规性。这类技术方案可广泛应用于电商监控、

weixin_42561040的博客 775

aiohttp 中使用代理

一眼明了,不耽误大家时间~!算了不废话了,直接上代码。

e5pool的博客 1996

Python 批量快速验证代理IP是否可用 asyncio+aiohttp异步请求

介绍了爬虫代理,包括代理的作用、分类、requests 和 aiohttp设置代理,最后用asyncio + aiohttp异步请求,批量快速验证代理IP是否可用。

叶庭云 成为自己的光 7352

python使用aiohttp通过设置代理爬取基金数据

代理池直接通过代理厂家提供就可以,有太多的代理很多同学不知道怎么选择,经过多年爬虫经验和使用代理的经验这里推荐亿牛云代理,长期使用不管是代理质量还是售后服务都是优于其他代理长家的。说到python爬虫,我们就会想到它那强大的库,很多新手小白在选择框架的时候都会想到使用Scrapy,但是仅仅停留在会使用的阶段。在实际爬虫过程中遇到反爬机制是再常见不过的,今天为了增加对爬虫机制的理解,我们就通过手动实现多线程的爬虫过程,同时引入IP代理池进行基本的反爬操作。一旦使用多线程,就需要考虑到一些爬取中会出现的问题。

Z_suger7的博客 1336

Python 爬虫项目 代理 IP 池搭建与动态切换实战

在爬虫长期运行过程中,高频请求、批量采集行为极易触发目标站点的 IP 封禁、访问限流、验证码拦截等反爬策略。单一公网 IP 反复发起请求,一旦被拉黑,整段采集任务会直接中断,严重影响项目稳定性。代理 IP作为解决 IP 封禁、突破访问限制的核心方案,被广泛应用于规模化爬虫、分布式采集、多账号模拟访问等场景。代理 IP 池是对大量可用代理 IP 进行统一管理、检测、调度、动态切换的服务体系,能够自动筛选有效 IP、剔除失效 IP、按规则分配 IP、请求时自动轮换,从根源上规避单 IP 高频访问风险。

2503_91057718的博客 933

从零到一:TI AWR1843 Boost EVM与DCA1000 EVM的ADC数据采集实战指南

本文详细介绍了TI AWR1843 Boost EVM与DCA1000 EVM的ADC数据采集实战指南,涵盖硬件连接、软件配置、固件烧录、雷达参数设置及数据处理等关键步骤。通过MATLAB等工具,开发者可高效实现毫米波雷达数据采集,适用于自动驾驶、工业检测等领域。

weixin_29001327的博客 967

python 异步框架aiohttp无法使用本地代理的解决方法

问题:aiohttp 在全局代理模式下无法访问墙外的网址,而requests可以 aiohttp不支持https代理,无论访问的网址是http还是https,使用代理是字符串proxy='http://127.0.0.1:10080' import aiohttp import asyncio headers = { 'User-Agent': "mozilla/5.0 (w...

lwdfzr的博客 1万+

避坑指南:你的VASP CI-NEB计算为什么不收敛?常见错误分析与解决思路

本文深入解析VASP CI-NEB计算不收敛的常见问题,提供从结构准备到参数设置的系统解决方案。针对过渡态计算中的能量曲线异常、中间图像偏离等典型问题,详细介绍了诊断方法和实用工具,帮助研究者高效解决CI-NEB收敛难题,提升计算效率。

weixin_29698641的博客 432

Python Requests 爬虫完全指南(增强版)

# Python Requests 爬虫完全指南(增强版) 本指南在原有基础上增加了处理JavaScript渲染页面、代理IP使用和高并发处理等高级内容,从基础到进阶全面覆盖爬虫开发所需知识和技巧。

桃李不言下自成蹊 1217

《科研伦理与学术规范》 全部 习题_答案 2020年秋

科研伦理与学术规范 答案 文章目录科研伦理与学术规范 答案1. 第一章课后习题(必做) 答案1.1 第一章Demo2. 第二章课后习题(必做) 答案3. 第三章课后习题(必做) 答案4. 第四章课后习题(必做) 答案5. 第五章课后习题(必做) 答案6. 第六章课后习题(必做) 答案 # 每行5题 #写于2020.11.17 侵删 1. 第一章课后习题(必做) 答案 ABC, A, B ,D ,ABCD ABC, D, A, BCD, C D, D, 1.1 第一章Demo

羊老羊 25万+

MacBook 长期挂机 OpenClaw:电池保护 + 防休眠设置

本文介绍了MacBook长期挂机运行OpenClaw时的电池保护和防休眠设置方案。主要内容包括:1)电池保护策略,通过电源连接、充电限制和定期充放电维护电池健康;2)防休眠设置,禁用系统休眠、自动休眠和屏幕休眠;3)OpenClaw的Docker部署方法。文章提供了详细的命令行脚本和配置说明,帮助用户实现MacBook的长期稳定运行,同时保护电池寿命。

一键难忘的博客 1695

第三章 爬虫提速、selenium模块、requests模块进阶

此章节讲解,如今市面大多数爬虫最后技术,分别:处理cookie、防盗链、代理、线程、进程、协程、异步http请求aiohttp模块、selenium模块。

2403_88453964的博客 1592

uniapp 如何封装实现任意页面都能使用的全局弹窗

项目内容场景全局监听消息提示难点uniapp 无法全局挂载组件解决方案动态创建 DOM + 动态 Vue 实例优势跨页面 / 不依赖页面组件树 / 灵活调用如果你使用的是小程序平台,DOM 操作可能受限,需要用或方式兼容处理。想支持多个弹窗堆叠?你可以扩展,加个弹窗队列管理器。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 944

Python网络爬虫从入门到实战:Requests、Scrapy与数据解析全攻略

爬虫学习笔记,学自Python网红Alex

weixin_54036563的博客 1952

Spring Boot集成ShardingSphere实现数据加密及数据脱敏 | Spring Cloud 48

利用ShardingSphere实现: - 数据加密 - 数据脱敏

gmHappy 1万+

《备考信息系统项目管理师》 - 专栏介绍和目录

本专栏会持续详细梳理软考高级信息系统项目管理师(高项)的考点、所有历年真题(包括综合知识、案例分析、论文)等,有论文专项,预测模拟题等内容。需要的可以先订阅下哦。

数据知道的博客 2万+

Python网络爬虫实战教程轻松掌握数据抓取与处理技巧

权限控制方案:基于角色的组件显隐逻辑

2501_93032478的博客 368

Android 14.0 SystemUI下拉通知栏通知去掉长按事件

在14.0的系统rom产品定制化开发中,在systemui模块中关于下拉状态栏这块也是非常重要的部分,最近在关于systemui下拉通知栏的每条通知部分 要求去掉通知栏通知的长按事件,不需要长按功能,所以就需要分析下关于长按事件是在哪里注册的,然后去掉就可以了,接下来分析实现 相关功能

安卓兼职framework和app工程师的博客 277

Python网络爬虫实战:从入门到应对反爬策略

网络爬虫作为数据采集的核心技术,通过模拟浏览器行为实现网页数据的自动化获取。其工作原理基于HTTP协议通信,配合HTML解析技术提取目标信息。Python凭借requests、BeautifulSoup等库成为爬虫开发的首选,尤其在处理动态渲染页面时,可结合selenium实现完整抓取。在电商价格监控、舆情分析等场景中,爬虫技术能显著提升数据获取效率。针对常见的反爬机制如User-Agent检测和IP封锁,开发者需要掌握代理IP池和请求头轮换等应对策略。本文以豆瓣电影Top250为例,演示了从基础请求到数据

weixin_29597551的博客 646

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

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

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Python 接入代理IP:爬虫网络优化实战

在爬虫、数据采集和多店铺运营中,代理 IP 是绕过目标站频率限制和地理封锁的常用手段。但直接给 requests.get() 加一个 proxies 参数只是第一步,真正影响稳定性和效率的是代理轮换、Session 复用、超时重试、并发控制

IPdodo_的博客 1756

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Python爬虫入门:从Requests到BeautifulSoup实战

网络爬虫作为自动化数据采集的核心技术,通过模拟浏览器行为实现网页内容抓取。其技术原理基于HTTP协议通信,结合HTML解析完成信息提取。Python生态中的Requests库简化了网络请求过程,而BeautifulSoup则提供了高效的DOM树解析能力,二者配合能快速构建稳定爬虫系统。在电商价格监控、舆情分析等场景中,合理使用爬虫技术可显著提升数据获取效率。针对反爬机制,开发者需要掌握User-Agent轮换、IP代理池等实战技巧,同时遵守robots.txt等合规要求。通过lxml解析器加速和异常处理优化

weixin_32050773的博客 733

在Scrapy中如何使用aiohttp

当我们从一些代理 IP 供应商购买代理 IP 时,他们可能是提供一个网址供我们查询当前可用的代理 IP。我们周期性访问这个网址,拿到最新的 IP,再分给爬虫使用。 最正确的做法,是单独有一个代理池程序,它负责请求这个网址,获取所有的代理 IP,然后维护到一个池子里面。爬虫只需要从这个池子里面拿就可以了。 但有时候,因为某些原因,我们可能暂时无法或者暂时没有时间开发代理池程序,于是不得不直接让爬虫去请求代理 IP 供应商提供的网址获取代理 IP。这个时候我们就面临了一个问题——爬虫应该怎么去请求代..

weixin_46453301的博客 935

在Scrapy中如何使用aiohttp?

“ 阅读本文大概需要 3 分钟。 ”当我们从一些代理 IP 供应商购买代理 IP 时,他们可能是提供一个网址供我们查询当前可用的代理 IP。我们周期性访问这个网址,拿到最新的 IP,再分...

静觅 1173

Python爬虫技术:从基础到实战的完整指南

网络爬虫作为数据采集的核心技术,通过模拟浏览器行为实现自动化数据抓取。其工作原理主要涉及HTTP请求发送、HTML解析和数据存储三个关键环节。在Python生态中,Requests和BeautifulSoup等库提供了便捷的开发工具,而aiohttp和lxml则能满足高性能需求。爬虫技术在大数据分析、价格监控和舆情分析等场景具有重要价值,但需注意反爬机制突破和合规性问题。本文通过对比解析工具和存储方案,结合分布式架构实践,帮助开发者构建高效的爬虫系统。

weixin_30902251的博客 361

爬虫探索之路

爬虫是一种按照规则自动爬取互联网信息的程序。

weixin_58429418的博客 317

如何用 Python 写出优雅又高效的爬虫

可以通过设置合理的请求头(如User-Agent)、控制请求频率(使用time.sleep或随机延迟)、使用代理IP池(如Scrapy的ProxyMiddleware)来规避封禁。Python凭借其丰富的库和简洁的语法,成为爬虫开发的首选语言。写出既优雅又高效的爬虫并非易事,需要兼顾代码可维护性、性能优化和反爬策略。优雅的爬虫应模块化设计,分离请求逻辑、解析逻辑和存储逻辑。通过以上方法,你的Python爬虫不仅能高效运行,还能保持代码的清晰与可扩展性,轻松应对各种复杂场景。

xluvbf_323的博客 406
上一篇: (异步爬虫)aiomysql剔除代理池中失效的IP
下一篇: pandas根据某列去重
Dream丶Killer
Dream丶Killer 优质创作者: python技术领域 优质创作者: python技术领域
博客等级 码龄8年 7万+粉丝 187原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dream丶Killer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值