国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python3.4實現從HTTP代理網站批量獲取代理并篩選的方法示例

2020-02-16 10:18:20
字體:
來源:轉載
供稿:網友

本文實例講述了Python3.4實現從HTTP代理網站批量獲取代理并篩選的方法。分享給大家供大家參考,具體如下:

最近在寫爬蟲,苦于不采用代理的情況下,默認的IP不出幾分鐘就被封了,故而只能尋找代理。原以為找到HTTP代理就萬事大吉了,沒想到從那個網站獲取的代理大部分都是不能用的,只有少部分能用。。。故而無奈之下,只能從那些代理網站大量獲取代理IP,然后再拿過來進行進一步的篩選,將有效的代理IP提取出來,留待進一步使用。

篩選的主要原理是,通過main函數提取到未經篩選的代理rawProxyList,然后通過這些代理嘗試連接目標網站(此文中是連接手機新浪網)。如果在規定時間內連接成功,則認定為有效代理,放到checkedProxyList之中。

__author__ = 'multiangle'__edition__='python3.4'import threadingimport urllib.request as requestimport timerawProxyList=[]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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乃东县| 江陵县| 北京市| 都江堰市| 桐庐县| 马公市| 饶河县| 托克逊县| 张家口市| 黔西| 额尔古纳市| 大方县| 鹤庆县| 蓬安县| 云霄县| 苏尼特左旗| 隆林| 张家界市| 宝清县| 兴业县| 林西县| 辽阳市| 湘乡市| 建昌县| 保靖县| 龙岩市| 芜湖市| 宾川县| 新平| 浠水县| 新泰市| 上犹县| 广灵县| 夏邑县| 应城市| 靖西县| 华安县| 宜君县| 济南市| 饶阳县| 西安市|