1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
      Python爬蟲IP代理池的實(shí)現(xiàn)

      Python 爬蟲IP代理池的實(shí)現(xiàn)

      成都創(chuàng)新互聯(lián)網(wǎng)站設(shè)計(jì),為客戶量身定制各類網(wǎng)站建設(shè)業(yè)務(wù),包括企業(yè)型、電子商務(wù)型、響應(yīng)式網(wǎng)站開發(fā)、行業(yè)門戶型等各類網(wǎng)站,實(shí)戰(zhàn)經(jīng)驗(yàn)豐富,成功案例眾多。以客戶利益為出發(fā)點(diǎn),成都創(chuàng)新互聯(lián)網(wǎng)站制作為客戶規(guī)劃、按需網(wǎng)站策劃符合企業(yè)需求、帶有營(yíng)銷價(jià)值的網(wǎng)絡(luò)建站方案認(rèn)真對(duì)待每一個(gè)客戶,我們不用口頭的語言來吹擂我們的優(yōu)秀,上千的成功案例見證著我們的成長(zhǎng)。

      很多時(shí)候,如果要多線程的爬取網(wǎng)頁(yè),或者是單純的反爬,我們需要通過代理 IP來進(jìn)行訪問。下面看看一個(gè)基本的實(shí)現(xiàn)方法。

      代理 IP Python 爬蟲IP代理池的實(shí)現(xiàn) 附件.txt 的提取,網(wǎng)上有很多網(wǎng)站都提供這個(gè)服務(wù)。基本上可靠性和銀子是成正比的。國(guó)內(nèi)提供的免費(fèi)IP基本上都是沒法用的,如果要可靠的代理只能付費(fèi);國(guó)外稍微好些,有些免費(fèi)IP還是比較靠譜的。

      網(wǎng)上隨便搜索了一下,找了個(gè)網(wǎng)頁(yè),本來還想手動(dòng)爬一些對(duì)應(yīng)的 IP,結(jié)果發(fā)現(xiàn)可以直接下載現(xiàn)成的txt文件

      下載之后,試試看用不同的代理去爬百度首頁(yè)

      #!/usr/bin/env python#! -*- coding:utf-8 -*-# Author: Yuan Liimport re,urllib.requestfp=open("c:\\temp\\thebigproxylist-17-12-20.txt",'r')lines=fp.readlines()for ip in lines:    try:            print("當(dāng)前代理IP "+ip)            proxy=urllib.request.ProxyHandler({"http":ip})            opener=urllib.request.build_opener(proxy,urllib.request.HTTPHandler)            urllib.request.install_opener(opener)            url="http://www.baidu.com"            data=urllib.request.urlopen(url).read().decode('utf-8','ignore')            print("通過")            print("-----------------------------")    except Exception as err:        print(err)        print("-----------------------------")fp.close()

      結(jié)果如下:

      C:\Python36\python.exe C:/Users/yuan.li/Documents/GitHub/Python/Misc/爬蟲/proxy.py當(dāng)前代理IP 137.74.168.174:80通過-----------------------------當(dāng)前代理IP 103.28.161.68:8080通過-----------------------------當(dāng)前代理IP 91.151.106.127:53281HTTP Error 503: Service Unavailable-----------------------------當(dāng)前代理IP 177.136.252.7:3128-----------------------------當(dāng)前代理IP 47.89.22.200:80通過-----------------------------當(dāng)前代理IP 118.69.61.57:8888HTTP Error 503: Service Unavailable-----------------------------當(dāng)前代理IP 192.241.190.167:8080通過-----------------------------當(dāng)前代理IP 185.124.112.130:80通過-----------------------------當(dāng)前代理IP 83.65.246.181:3128通過-----------------------------當(dāng)前代理IP 79.137.42.124:3128通過-----------------------------當(dāng)前代理IP 95.0.217.32:8080-----------------------------當(dāng)前代理IP 104.131.94.221:8080通過

      不過上面這種方式只適合比較穩(wěn)定的 IP源,如果IP不穩(wěn)定的話,可能很快對(duì)應(yīng)的文本就失效了,最好可以動(dòng)態(tài)地去獲取最新的IP地址。很多網(wǎng)站都提供API可以實(shí)時(shí)地去查詢
      還是用剛才的網(wǎng)站,這次我們用 API去調(diào)用,這里需要瀏覽器偽裝一下才能爬取

      #!/usr/bin/env python#! -*- coding:utf-8 -*-# Author: Yuan Liimport re,urllib.requestheaders=("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.22 Safari/537.36 SE 2.X MetaSr 1.0")opener=urllib.request.build_opener()opener.addheaders=[headers]#安裝為全局urllib.request.install_opener(opener)data=urllib.request.urlopen("http://www.thebigproxylist.com/members/proxy-api.php?output=all&user=list&pass=8a544b2637e7a45d1536e34680e11adf").read().decode('utf8')ippool=data.split('\n')for ip in ippool:    ip=ip.split(',')[0]    try:            print("當(dāng)前代理IP "+ip)            proxy=urllib.request.ProxyHandler({"http":ip})            opener=urllib.request.build_opener(proxy,urllib.request.HTTPHandler)            urllib.request.install_opener(opener)            url="http://www.baidu.com"            data=urllib.request.urlopen(url).read().decode('utf-8','ignore')            print("通過")            print("-----------------------------")    except Exception as err:        print(err)        print("-----------------------------")fp.close()

      結(jié)果如下:

      C:\Python36\python.exe C:/Users/yuan.li/Documents/GitHub/Python/Misc/爬蟲/proxy.py當(dāng)前代理IP 213.233.57.134:80HTTP Error 403: Forbidden-----------------------------當(dāng)前代理IP 144.76.81.79:3128通過-----------------------------當(dāng)前代理IP 45.55.132.29:53281HTTP Error 503: Service Unavailable-----------------------------當(dāng)前代理IP 180.254.133.124:8080通過-----------------------------當(dāng)前代理IP 5.196.215.231:3128HTTP Error 503: Service Unavailable-----------------------------當(dāng)前代理IP 177.99.175.195:53281HTTP Error 503: Service Unavailable

      因?yàn)橹苯?for循環(huán)來按順序讀取文本實(shí)在是太慢了,我試著改成多線程來讀取,這樣速度就快多了

      #!/usr/bin/env python#! -*- coding:utf-8 -*-# Author: Yuan Liimport threadingimport queueimport re,urllib.request#Number of threadsn_thread = 10#Create queuequeue = queue.Queue()class ThreadClass(threading.Thread):    def __init__(self, queue):        threading.Thread.__init__(self)                

      super(ThreadClass, self).__init__()    #Assign thread working with queue        self.queue = queue    def run(self):        while True:        #Get from queue job            host = self.queue.get()            

      print (self.getName() + ":" + host)            try:                # print("當(dāng)前代理IP " + host)                proxy = urllib.request.ProxyHandler({"http": host})                opener = urllib.request.build_opener(proxy, urllib.request.HTTPHandler)                urllib.request.install_opener(opener)                url = "http://www.baidu.com"                data = urllib.request.urlopen(url).read().decode('utf-8', 'ignore')                print("通過")                print("-----------------------------")            

      except Exception as err:                print(err)                

      print("-----------------------------")            #signals to queue jo

       

       

       

       

       

       


      文章標(biāo)題:Python爬蟲IP代理池的實(shí)現(xiàn)
      URL鏈接:http://www.ef60e0e.cn/article/jsjccd.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        商水县| 临泽县| 乌兰县| 郓城县| 潜江市| 安吉县| 玉门市| 德昌县| 荔浦县| 宜阳县| 遵化市| 峨眉山市| 西城区| 馆陶县| 郑州市| 红桥区| 山阳县| 渝中区| 射阳县| 七台河市| 明溪县| 焉耆| 哈尔滨市| 双柏县| 嘉荫县| 璧山县| 金堂县| 淅川县| 噶尔县| 雷山县| 乐东| 留坝县| 大关县| 化隆| 安西县| 烟台市| 巫山县| 鸡东县| 都匀市| 安徽省| 拜城县|