Python3.4实现从HTTP代理网站批量获取代理并筛选的方法示例

发布时间 - 2026-01-11 03:24:46    点击率:

本文实例讲述了Python3.4实现从HTTP代理网站批量获取代理并筛选的方法。分享给大家供大家参考,具体如下:

最近在写爬虫,苦于不采用代理的情况下,默认的IP不出几分钟就被封了,故而只能寻找代理。原以为找到HTTP代理就万事大吉了,没想到从那个网站获取的代理大部分都是不能用的,只有少部分能用。。。故而无奈之下,只能从那些代理网站大量获取代理IP,然后再拿过来进行进一步的筛选,将有效的代理IP提取出来,留待进一步使用。

筛选的主要原理是,通过main函数提取到未经筛选的代理rawProxyList,然后通过这些代理尝试连接目标网站(此文中是连接手机新浪网)。如果在规定时间内连接成功,则认定为有效代理,放到checkedProxyList之中。

__author__ = 'multiangle'
__edition__='python3.4'
import threading
import urllib.request as request
import time
rawProxyList=[]
checkedProxyList=[]
class proxycheck(threading.Thread):
 def __init__(self,proxy_list):
  threading.Thread.__init__(self)
  self.proxy_list=proxy_list
  self.timeout=3
  self.testurl='http://www.sina.cn/'
  self.testStr='手机新浪网'
 def checkproxy(self):
  cookies=request.HTTPCookieProcessor()
  for proxy in self.proxy_list:
   handler=request.ProxyHandler({'http':'http://%s'%(proxy)})
   opener=request.build_opener(cookies,handler)
   t1=time.time()
   try:
    req=opener.open(self.testurl,timeout=self.timeout)
    res=req.read()
    res=str(res,encoding='utf8')
    usetime=time.time()-t1
    if self.testStr in res:
     checkedProxyList.append((proxy,usetime))
   except Exception as e :
    print(e)
 def run(self):
  self.checkproxy()
if __name__=='__main__':
 num=20
 thread_num=10
 checkThrends=[]
 url='YOUR PROXY URL' #提取代理的网站。
 req=request.urlopen(url).read()
 req=str(req,encoding='utf-8')
 list=req.split('\r\n') #网站返回的是字符串格式,用'\r\n'进行分割
 rawProxyList=list
 print('get raw proxy')
 for i in rawProxyList:
  print(i)
 # s=proxycheck_test(rawProxyList)
 batch_size=int((len(rawProxyList)+thread_num-1)/thread_num)
 print(batch_size)
 for i in range(thread_num):
  t=proxycheck(rawProxyList[batch_size*i:batch_size*(i+1)])
  checkThrends.append(t)
 for i in range(checkThrends.__len__()):
  checkThrends[i].start()
 for i in range(checkThrends.__len__()):
  checkThrends[i].join()
 print(checkedProxyList.__len__(),' useful proxy is find')
 for i in checkedProxyList:
  print(i)

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。


# Python3.4  # HTTP  # 代理网站  # 批量  # 获取  # 代理  # 筛选  # Python程序中设置HTTP代理  # 批量获取及验证HTTP代理的Python脚本  # Python request设置HTTPS代理代码解析  # 对python使用http、https代理的实例讲解  # Python代码实现http/https代理服务器的脚本  # python爬虫http代理使用方法  # Python异步爬虫requests和aiohttp中代理IP的使用  # python使用aiohttp通过设置代理爬取基金数据简单示例  # 解决python异步框架aiohttp无法使用本地代理问题  # python做http代理请求的项目实践  # 新浪网  # 的是  # 都是  # 进阶  # 操作技巧  # 相关内容  # 不出  # 万事大吉  # 时间内  # 数据结构  # 给大家  # 然后再  # 几分钟  # 不能用  # 更多关于  # 所述  # 程序设计  # 原以为  # 使用技巧  # 封了 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何自定义建站之星网站的导航菜单样式?  Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】  微信公众帐号开发教程之图文消息全攻略  谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复  如何快速搭建高效服务器建站系统?  网站建设整体流程解析,建站其实很容易!  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  ,在苏州找工作,上哪个网站比较好?  Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知  Laravel如何创建和注册中间件_Laravel中间件编写与应用流程  Laravel如何使用模型观察者?(Observer代码示例)  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  简历在线制作网站免费版,如何创建个人简历?  实例解析angularjs的filter过滤器  php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  Laravel如何生成API文档?(Swagger/OpenAPI教程)  Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性  Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理  企业网站制作这些问题要关注  如何彻底卸载建站之星软件?  如何用已有域名快速搭建网站?  如何用IIS7快速搭建并优化网站站点?  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  焦点电影公司作品,电影焦点结局是什么?  原生JS获取元素集合的子元素宽度实例  实例解析Array和String方法  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  Laravel如何使用Sanctum进行API认证?(SPA实战)  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  开心动漫网站制作软件下载,十分开心动画为何停播?  音响网站制作视频教程,隆霸音响官方网站?  DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解  Bootstrap CSS布局之列表  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  长沙企业网站制作哪家好,长沙水业集团官方网站?  html5audio标签播放结束怎么触发事件_onended回调方法【教程】  nginx修改上传文件大小限制的方法  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  高端企业智能建站程序:SEO优化与响应式模板定制开发  Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复  微信小程序 HTTPS报错整理常见问题及解决方案  什么是JavaScript解构赋值_解构赋值有哪些实用技巧  微信小程序 闭包写法详细介绍  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程  JS弹性运动实现方法分析