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 中整型对象存储的位置
May 16 Python
对pandas进行数据预处理的实例讲解
Apr 20 Python
Python解决八皇后问题示例
Apr 22 Python
python RabbitMQ 使用详细介绍(小结)
Nov 08 Python
解决Python3.5+OpenCV3.2读取图像的问题
Dec 05 Python
详解python运行三种方式
May 13 Python
python 实现list或string按指定分段
Dec 25 Python
python3.7通过thrift操作hbase的示例代码
Jan 14 Python
keras 自定义loss损失函数,sample在loss上的加权和metric详解
May 23 Python
keras输出预测值和真实值方式
Jun 27 Python
教你用python控制安卓手机
May 13 Python
Golang Web 框架Iris安装部署
Aug 14 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
一个用mysql_odbc和php写的serach数据库程序
2006/10/09 PHP
PHP日期时间函数的高级应用技巧
2009/05/16 PHP
php 带逗号千位符数字的处理方法
2012/01/10 PHP
yii2框架中使用下拉菜单的自动搜索yii-widget-select2实例分析
2016/01/09 PHP
JavaScript中的标签语句用法分析
2015/02/10 Javascript
Javascript控制div属性动态变化实例分析
2015/10/08 Javascript
javascript正则表达式之分组概念与用法实例
2016/06/16 Javascript
js将字符串中的每一个单词的首字母变为大写其余均为小写
2017/01/05 Javascript
vue中各组件之间传递数据的方法示例
2017/07/27 Javascript
fetch 使用及如何接收JS传值
2017/11/11 Javascript
使用vue中的v-for遍历二维数组的方法
2018/03/07 Javascript
Vue数据双向绑定的深入探究
2018/11/27 Javascript
解决vuex刷新状态初始化的方法实现
2019/08/15 Javascript
JavaScript设计模式之门面模式原理与实现方法分析
2020/03/09 Javascript
在python的WEB框架Flask中使用多个配置文件的解决方法
2014/04/18 Python
python显示生日是星期几的方法
2015/05/27 Python
python 基本数据类型占用内存空间大小的实例
2018/06/12 Python
ubuntu17.4下为python和python3装上pip的方法
2018/06/12 Python
一篇文章搞定Python操作文件与目录
2019/08/13 Python
python能做什么 python的含义
2019/10/12 Python
Python爬虫解析网页的4种方式实例及原理解析
2019/12/30 Python
python实现猜数游戏
2020/03/27 Python
keras .h5转移动端的.tflite文件实现方式
2020/05/25 Python
python利用paramiko实现交换机巡检的示例
2020/09/22 Python
美国特价机票专家:Airfarewatchdog
2018/01/24 全球购物
Hoka One One法国官网:美国专业跑鞋品牌
2018/12/29 全球购物
如何选择使用结构还是类
2014/05/30 面试题
最新英语专业学生求职信范文
2013/09/21 职场文书
毕业生就业自荐书
2013/12/15 职场文书
房地产项目建议书
2014/03/12 职场文书
课程改革实施方案
2014/03/16 职场文书
2014年酒店工作总结与计划
2014/11/17 职场文书
信用卡工作证明范本
2015/06/19 职场文书
教师病假条范文
2015/08/17 职场文书
奖学金发言稿(范文)
2019/08/21 职场文书
超详细Python解释器新手安装教程
2021/05/10 Python