Python异步编程与aiohttp检测代理池

本文介绍了使用Python的异步库aiohttp进行代理池检测的实践,阐述了异步编程的必要性和aiohttp的基本用法。通过示例代码详细解析了异步HTTP请求的执行流程,展示了如何利用事件循环和协程实现高效地并发处理大量HTTP事务。此外,还提及在Windows系统下并发限制和代理质量的问题。
摘要由CSDN通过智能技术生成

之前为了检测代理的可用性学习了一下aiohttp,网上有关aiohttp的使用很少,所以写篇博客记录下来。
首先,为什么要使用异步编程,先看两张图。
这里写图片描述
这里写图片描述

很显然,我们不希望cpu在这些极慢的IO操作上阻塞,我们希望在IO操作期间,CPU能继续执行其他的任务,Python中的异步asyncio能很好实现这一点。
什么是协程?可以参考下面这篇文章
最新Python异步编程详解
aiohttp 简易使用教程
aiohttp基本使用可以参考aiohttp官网

在HTTP事物当中,当我们发送了一个GET请求后,我们的客户端与服务器建立TCP链接会有时延,链接建立后我们发送请求主体服务器接受后处理也会有时间延迟,将响应报文传送回来也会产生延迟,在同步模型中,程序在传输过程中会阻塞,等待传输完成,这将耗费大量的时间。
所以我们希望任何时候,当我们的客户端程序请求发送后,不因等待响应而阻塞,让程序能执行其他的事情,当响应到底后,以某种方法通知程序去处理,或者程序以查询的方式在空闲的时候回去查询这个响应是否到达。

Python的异步编程和异步网络框架可以帮我们做到这一点。
先上代码

import asyncio

from aiohttp import ClientSession
from ip_pool.MongoDB import mongodb
import requests

class ProxyValidator(object):

    def __init__(self)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值