欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2017年09月26日 08:58:38   作者:multiangle  
這篇文章主要介紹了Python3.4實現從HTTP代理網站批量獲取代理并篩選的方法,涉及Python網絡連接、讀取、判斷等相關操作技巧,需要的朋友可以參考下

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

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

篩選的主要原理是,通過main函數提取到未經篩選的代理rawProxyList,然后通過這些代理嘗試連接目標網站(此文中是連接手機新浪網)。如果在規(guī)定時間內連接成功,則認定為有效代理,放到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數據可視化之Seaborn的使用詳解

    Python數據可視化之Seaborn的使用詳解

    Seaborn庫是python中基于matplotlib庫的可視化工具庫,通過sns我們可以更方便地繪制出更美觀的圖表。本文將分享python基于Seaborn庫的一系列繪圖操作,感興趣的可以了解一下
    2022-04-04
  • 詳解selenium + chromedriver 被反爬的解決方法

    詳解selenium + chromedriver 被反爬的解決方法

    這篇文章主要介紹了詳解selenium + chromedriver 被反爬的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • 簡單文件操作python 修改文件指定行的方法

    簡單文件操作python 修改文件指定行的方法

    使用python進行簡略的文件讀寫
    2013-05-05
  • Python?迭代器Iterator詳情

    Python?迭代器Iterator詳情

    這篇文章主要介紹了Python?迭代器Iterator詳情,迭代器可以幫助我們解決面對復雜的數據場景時,快速簡便的獲取數據,下文關于其詳細介紹,需要的小伙伴可以參考一下
    2022-05-05
  • Scrapy基于scrapy_redis實現分布式爬蟲部署的示例

    Scrapy基于scrapy_redis實現分布式爬蟲部署的示例

    這篇文章主要介紹了Scrapy基于scrapy_redis實現分布式爬蟲部署的示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • django中類屬性和類方法的實現

    django中類屬性和類方法的實現

    在django中,類的屬性可以直接在實例化對象或類中調用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-10-10
  • pycharm下pyqt4安裝及環(huán)境配置的教程

    pycharm下pyqt4安裝及環(huán)境配置的教程

    這篇文章主要介紹了pycharm下pyqt4安裝及環(huán)境配置的教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • Pandas中map(),applymap(),apply()函數的使用方法

    Pandas中map(),applymap(),apply()函數的使用方法

    本文主要介紹了Pandas中map(),applymap(),apply()函數的使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • Python如何利用opencv實現手勢識別

    Python如何利用opencv實現手勢識別

    這篇文章主要介紹了Python如何利用opencv實現手勢識別,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙可以參考一下
    2022-05-05
  • pytest用例間參數傳遞的兩種實現方式示例

    pytest用例間參數傳遞的兩種實現方式示例

    pytest提供了許多運行命令以供定制化運行某一類測試用例或者某個測試用例等,下面這篇文章主要給大家介紹了關于pytest用例間參數傳遞的兩種實現方式,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-12-12

最新評論