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如何记录自定义日志?(Log频道配置)  C++时间戳转换成日期时间的步骤和示例代码  QQ浏览器网页版登录入口 个人中心在线进入  详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点  百度浏览器网页无法复制文字怎么办 百度浏览器复制修复  Laravel中的withCount方法怎么高效统计关联模型数量  Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置  如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程  北京网站制作的公司有哪些,北京白云观官方网站?  如何用美橙互联一键搭建多站合一网站?  深入理解Android中的xmlns:tools属性  为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】  HTML 中动态设置元素 name 属性的正确语法详解  linux top下的 minerd 木马清除方法  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  如何在搬瓦工VPS快速搭建网站?  javascript基本数据类型及类型检测常用方法小结  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  Laravel如何优化应用性能?(缓存和优化命令)  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集  网站制作大概多少钱一个,做一个平台网站大概多少钱?  高性能网站服务器部署指南:稳定运行与安全配置优化方案  网站制作免费,什么网站能看正片电影?  Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】  php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】  Laravel如何生成URL和重定向?(路由助手函数)  jquery插件bootstrapValidator表单验证详解  Swift开发中switch语句值绑定模式  网站建设要注意的标准 促进网站用户好感度!  如何在万网利用已有域名快速建站?  高端企业智能建站程序:SEO优化与响应式模板定制开发  利用JavaScript实现拖拽改变元素大小  Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布  Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】  在线教育网站制作平台,山西立德教育官网?  如何用狗爹虚拟主机快速搭建网站?  JavaScript实现Fly Bird小游戏  如何在不使用负向后查找的情况下匹配特定条件前的换行符  JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  七夕网站制作视频,七夕大促活动怎么报名?  Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  详解vue.js组件化开发实践  敲碗10年!Mac系列传将迎来「触控与联网」双革新  Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)  javascript中的try catch异常捕获机制用法分析  javascript中的数组方法有哪些_如何利用数组方法简化数据处理