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


Posted in Python onSeptember 26, 2017

本文实例讲述了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程序设计有所帮助。

Python 相关文章推荐
介绍Python中的文档测试模块
Apr 28 Python
python连接数据库的方法
Oct 19 Python
Python元字符的用法实例解析
Jan 17 Python
python实现字符串中字符分类及个数统计
Sep 28 Python
Python使用while循环花式打印乘法表
Jan 28 Python
Python3.4解释器用法简单示例
Mar 22 Python
Django的models中on_delete参数详解
Jul 16 Python
Python使用lambda表达式对字典排序操作示例
Jul 25 Python
利用python计算时间差(返回天数)
Sep 07 Python
Ubuntu16.04安装python3.6.5步骤详解
Jan 10 Python
python基于exchange函数发送邮件过程详解
Nov 06 Python
Python 用__new__方法实现单例的操作
Dec 11 Python
python九九乘法表的实例
Sep 26 #Python
Python实现简单的HttpServer服务器示例
Sep 25 #Python
Python使用正则表达式过滤或替换HTML标签的方法详解
Sep 25 #Python
Python实现的破解字符串找茬游戏算法示例
Sep 25 #Python
Python实现破解猜数游戏算法示例
Sep 25 #Python
Python基于identicon库创建类似Github上用的头像功能
Sep 25 #Python
python3使用requests模块爬取页面内容的实战演练
Sep 25 #Python
You might like
用PHP实现WEB动态网页静态
2006/10/09 PHP
vBulletin HACK----显示话题大小和打开新窗口于论坛索引页
2006/10/09 PHP
php curl基本操作详解
2013/07/23 PHP
基于jquery tab切换(防止页面刷新)
2012/05/23 Javascript
地址栏传递中文参数乱码在js里用escape转码
2013/08/28 Javascript
jQuery Mobile的loading对话框显示/隐藏方法分享
2013/11/26 Javascript
JavaScript中几种排序算法的简单实现
2015/07/29 Javascript
Jqgrid之强大的表格插件应用
2015/12/02 Javascript
详解Webwork中Action 调用的方法
2016/02/02 Javascript
浅谈Cookie的生命周期问题
2016/08/02 Javascript
javascript实现鼠标点击页面 移动DIV
2016/12/02 Javascript
详解vue-cli构建项目反向代理配置
2017/09/07 Javascript
vue 父组件中调用子组件函数的方法
2019/06/06 Javascript
微信小程序实现原生步骤条
2019/07/25 Javascript
微信小程序实现时间戳格式转换
2020/07/20 Javascript
Vue-CLI 3 scp2自动部署项目至服务器的方法
2020/07/24 Javascript
详谈Vue.js框架下main.js,App.vue,page/index.vue之间的区别
2020/08/12 Javascript
python脚本内运行linux命令的方法
2015/07/02 Python
Flask配置Cors跨域的实现
2019/07/12 Python
jupyter notebook中美观显示矩阵实例
2020/04/17 Python
文件上传服务器-jupyter 中python解压及压缩方式
2020/04/22 Python
Python collections模块的使用方法
2020/10/09 Python
python绘制汉诺塔
2021/03/01 Python
萌新HTML5 入门指南(二)
2020/11/09 HTML / CSS
美国领先的个性化礼品商城:Personalization Mall
2019/07/27 全球购物
酒店司机岗位职责
2013/12/14 职场文书
公司中秋节活动方案
2014/02/12 职场文书
副处级干部考察材料
2014/05/17 职场文书
爱与责任演讲稿
2014/05/20 职场文书
小学生安全教育广播稿
2014/10/20 职场文书
大班上学期个人总结
2015/02/13 职场文书
美丽心灵观后感
2015/06/01 职场文书
《我们的民族小学》教学反思
2016/02/19 职场文书
PySwarms(Python粒子群优化工具包)的使用:GlobalBestPSO例子解析
2021/04/05 Python
Python办公自动化解决world文件批量转换
2021/09/15 Python
MySQL事务的隔离级别详情
2022/07/15 MySQL