当前位置: 首页 > article >正文

异步爬取+多线程+redis构建一个运转丝滑且免费http-ip代理池 (二)

继上一章:

CSDN

本次需要做的是进行有效ip的验证!

我们知道,从网页上爬取上千上万个ip之后,因为是免费的代理,所以,对这上千上万个ip进行验证有效性就需要考虑效率上的问题了;

而验证ip有效性的唯一办法,就是通过对网络发起请求;如果state=200,就是有效,否则就是无效;

而上千万次的发起请求,如果通过多线程去做,势必会增加服务器的压力;

因此,只能通过异步去验证IP是否有效:

async def check_ip(session, proxy):
    """...略去其它注释,同时函数的docstring也要更新..."""
    proxy_url = f"http://{proxy['ip']}:{proxy['port']}"
    try:
        async with session.get(url="http://httpbin.org/ip", timeout=1.5, proxy=proxy_url) as response:
            # 返回原始代理信息和有效性状态
            return proxy, response.status == 200
    except (aiohttp.ClientError, asyncio.TimeoutError):
        # 返回原始代理信息和无效状态
        return proxy, False



async def check_ip_main(proxies):
    """
    检查IP有效性并返回所有有效的IP列表
    """
    asy

http://www.kler.cn/a/135393.html

相关文章:

  • 阿里云通义大模型团队开源Qwen2.5-Coder:AI编程新纪元
  • 远离生成式AI大乱斗,SAS公司揭示亚太区千亿AI市场蓝图
  • 文件夹被占用了无法删除怎么办?强制粉碎文件夹你可以这样操作
  • Android Framework AMS(16)进程管理
  • 94个属于一区且接受医工交叉领域投稿的期刊汇总|个人观点·24-11-13
  • 如何在Puppeteer中实现表单自动填写与提交:问卷调查
  • 执行sql,提示Illegal instruction(非法指令)
  • C语言——函数的嵌套调用
  • 【zabbix监控三】zabbix之部署代理服务器
  • vue 城市选择器的使用 element-china-area-data
  • 【开源】基于Vue.js的衣物搭配系统的设计和实现
  • Axure RP Pro 8 mac/win中文版:打造无限可能的原型设计工具
  • 2023下半年软件设计师考试知识点大全思维导图
  • 文件隐藏 [极客大挑战 2019]Secret File1
  • springboot(ssm大学生成绩管理系统 成绩管理平台Java(codeLW)
  • 【Spring】之初识
  • 西南科技大学814考研一
  • wpf devexpress自定义编辑器
  • 【iOS】——知乎日报第五周总结
  • SVG直线 <line>与折线 <polyline>代码示例
  • C++入门(3)—内联函数、auto、范围for、nullptr
  • 【18年扬大真题】给定有m个整数的递增有序数组a和有n个整数的递减有序数组b,将a数组和b数组归并为递增有序的数组c
  • 物联网AI MicroPython学习之语法 SPI串行外设通信
  • Kotlin 知识体系
  • 4-5学生分数对应的成绩
  • electron使用better-sqlite3打包失败(electron打包有进程没有界面)