aiohttp/asyncio测试代理是否可用
- #!/usr/bin/env python
- # encoding: utf-8
- from proxyPool.db import RedisClient
- import asyncio
- import aiohttp
- import time
- try:
- from aiohttp import ClientError,client_exceptions
- except:
- from aiohttp import ClientProxyConnectionError as ProxyConnectionError
- VALID_STATUS_CODES=[200]
- TEST_URL='http://www.baidu.com'
- BATCH_TEST_SIZE=100
- class Tester(object):
- def __init__(self):
- self.redis=RedisClient()
- async def test_single_proxy(self,proxy):
- """
- 测试单个代理
- :param proxy:单个代理
- :return: None
- """
- conn=aiohttp.TCPConnector(verify_ssl=False)
- async with aiohttp.ClientSession(connector=conn) as session:
- try:
- if isinstance(proxy,bytes):
- proxy=proxy.decode('utf-8')
- real_proxy='http://'+proxy
- print("正在测试",proxy)
- async with session.get(TEST_URL,proxy=real_proxy,timeout=15) as response:
- if response.status in VALID_STATUS_CODES:
- self.redis.max(proxy)
- print("代理可用",proxy)
- else:
- self.redis.decrease(proxy)
- print("请求响应码不合法",proxy)
- except(ClientError,client_exceptions.ClientConnectorError,TimeoutError,AttributeError):
- self.redis.decrease(proxy)
- print("代理请求失败",proxy)
- def run(self):
- """
- 测试函数
- :return:None
- """
- print("测试器开始运行")
- try:
- proxies=self.redis.all()
- loop=asyncio.get_event_loop()
- #批量测试
- for i in range(0,len(proxies),BATCH_TEST_SIZE):
- test_proxies=proxies[i:i+BATCH_TEST_SIZE]
- tasks=[self.test_single_proxy(proxy) for proxy in test_proxies]
- loop.run_until_complete(asyncio.wait(tasks))
- time.sleep(5)
- except Exception as e:
- print("测试器发生错误",e.args)
aiohttp/asyncio测试代理是否可用的更多相关文章
- Python爬虫-代理池-爬取代理入库并测试代理可用性
目的:建立自己的代理池.可以添加新的代理网站爬虫,可以测试代理对某一网址的适用性,可以提供获取代理的 API. 整个流程:爬取代理 ----> 将代理存入数据库并设置分数 ----> 从数 ...
- curl测试代理连接某个域名的连接时间
缘由:需要查询一下某些代理访问指定域名所消耗的时间,来判断是否是代理连接受限 以下代理均为示例代理,无法真正连接 1. 通过curl方式来测试指定代理的连接情况,代理无账号密码 curl -x 127 ...
- python测试代理IP地址
代码: # -*- coding: utf-8 -*- import urllib,urllib2,re from random import choice from scrapy.selector ...
- windows使用proxifier全局代理 - 配置可用; windows10 配置全局代理 走 socks5
最近windows上需要配置全局代理 走 socks5,发现同类型的有 cow pcap 等解决方案,通过尝试发现还是proxifier 比较好用! 下载:https://www.proxifier. ...
- jQuery+Ajax+PHP 制作简单的异步数据传输(测试用户名是否可用)
实现基本异步数据传输,略去与数据库交换,先直接在PHP端判断:用户名为 user1 即为不可用, 测试时外加了 普遍的 “Loading..." 功能,此功能可直接在PHP中循环延时 for ...
- aiohttp/asyncio 小例子和解释
#!/usr/bin/env python # encoding: utf-8 import aiohttp import asyncio import time # 通过async def定义的函数 ...
- aiohttp/asyncio 多次请求
#!/usr/bin/env python # -*- coding: utf-8 -*- __author__ = "Daniel Altiparmak (sixfinger78@gmai ...
- 模拟post请求-->测试api是否可用-->再交给ios开发
提交给iso开发前.先模拟post提交,测试返回是否正确 =============post.php文件 ios每次最少要提交5个数据, 加密串 seqno , 请求验证码 source, 设备唯一标 ...
- Nginx 反向代理+高可用
反向代理主机IP:10.0.0.20 WEB01主机IP : 10.0.0.22 WEB02主机IP : 10.0.0.23 反向代理主机配置:10.0.0.20 [root@node1 html]# ...
随机推荐
- [Codeforces958E2]Guard Duty (medium)(区间DP)
Description 题目链接 Solution 可以把题目转化一下模型,将间隔取出来,转化为N-1个数,限制不能取相邻两个数,求取K个数的最小价值 设DP[i][j]表示前i个数取j个最大价值(第 ...
- java.lang.NoSuchMethodError: cn.makangning.test.dao.Users.getUserBirthday()Ljava/sql/Date;
有时候出现这种怪异的问题,是由于多个版本的class存在. 比如说:某个java编译成class后,放到classes下面,然后lib目录下,也有这个class所在的jar包,这样就导致classpa ...
- Matplotlib库介绍
pyplot的plot()函数 pyplot的中文显示 pyplot的文本显示 pyplot的子绘图区域
- HDU 5293 Tree chain problem 树形DP
题意: 给出一棵\(n\)个节点的树和\(m\)条链,每条链有一个权值. 从中选出若干条链,两两不相交,并且使得权值之和最大. 分析: 题解 #include <cstdio> #incl ...
- JS 金钱格式化
JavaScript Money Format(用prototype对Number进行扩展) Number.prototype.formatMoney = function (places, symb ...
- 让NVelocity做更多的事,VS Extension+NVelocity系列
我不知道园子里到底有多少人喜欢使用NVelocity这个模板引擎,其实说实话,如果现在让我选,我对Razor的喜好要比NVelocity或者T4等等的模板引擎更多一些,当然了,个人看法而已.只是我在公 ...
- C语言库函数实现 【微软面试100题 第八十三题】
题目要求 1.strcpy/memcpy/memmove: 2.memset函数: 3.字符串处理函数. 题目分析 1.接口定义: char * strcpy(char * dest, const c ...
- 抓取网站访问者的QQ号码
开源,是一种精神.但不开源,并不是没有精神,而可能是代码写得惨不忍睹,我属于后者.(首先申明:对代码提出意见可接受,虚心接受,但不能人身攻击啊!) 最近闲的蛋疼,喜欢到处看看做得好的站点, 莫 ...
- 【Balanced Binary Tree】cpp
题目: Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced bin ...
- Git上手:Git扫盲区
Git 自述Git 是由伟大的电脑程序员Linus Torvalds编写的一个开源的,分布式的版本控制系统软件. Git 核心原理Git 利用底层数据结构,通过指向索引对象的可变指针,保存文件快照. ...