python檢測代理IP可否翻越GFW

來源:互聯網
上載者:User

標籤:

  那堵牆著實可恨!身處IT這個圈子,經常需要用gg查資料(你也可以用來訪問1024,^_^...)。當然,你也可以用百度。其實也不是我不愛用百度,是有緣由的,且聽我細細道來。有一次閑得蛋疼,想看看會不會有人抄襲我的部落格(儘管部落格學得不咋地),於是百度了一下,結果是驚人的。我發現我自己寫的部落格,即使是拿整個標題去搜尋,往往搜不到,搜到的是一堆爬蟲爬去的結果。具體是哪些,這裡就不說了,各自可以拿自己的部落格試一下。以前總是手工收集幾個IP用一段時間,失效了以後再重新收集幾個,如此反覆,煩!於是,想著寫個爬蟲抓取代理IP,然後每次直接資料庫裡面找幾個出來用就行了。然而,爬蟲爬過來的IP有很多已經失效了。這時又淪落為手工測試,這不是為自己增添更多的煩惱嗎?於是寫個檢測代理IP是否可用的程式,讓程式幫我檢測好了。這樣每次我就可以拿到可用的代理IP了。由於爬蟲是用scrapy寫的,為了方便維護,IP檢測就作為scrapy爬蟲裡面的一部分好了。於是有了下面這段檢測的程式:

  1、建立檔案:checkproxy.py

#coding=utf-8 import urllib2import urllibimport timeimport socketip_check_url = ‘http://www.google.com.hk/‘user_agent = ‘Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0‘socket_timeout = 30 # Check proxydef check_proxy(protocol, pip):     try:        proxy_handler = urllib2.ProxyHandler({protocol:pip})        opener = urllib2.build_opener(proxy_handler)        # opener.addheaders = [(‘User-agent‘, user_agent)] #這句加上以後無法正常檢測,不知道是什麼原因。        urllib2.install_opener(opener)

req = urllib2.Request(ip_check_url) time_start = time.time() conn = urllib2.urlopen(req) # conn = urllib2.urlopen(ip_check_url) time_end = time.time() detected_pip = conn.read() proxy_detected = True except urllib2.HTTPError, e: print "ERROR: Code ", e.code return False except Exception, detail: print "ERROR: ", detail return False return proxy_detecteddef main(): socket.setdefaulttimeout(socket_timeout) print protocol = "http" current_proxy = "212.82.126.32:80" proxy_detected = check_proxy(protocol, current_proxy) if proxy_detected: print (" WORKING: " + current_proxy) else: print " FAILED: %s " % ( current_proxy, )if __name__ == ‘__main__‘: main()

  2、測試:

[[email protected] proxyipspider]# python checkproxy.py   WORKING: 212.82.126.32:80

  當然,這隻是程式的一個原型,真正檢測的程式還需要結合資料庫或檔案操作來完成。代理IP檢測出來了,那麼剩下的就是設定了。設定好以後,盡情地gg吧。1024你想看多久就看多久,不過還是不要看多為好,你懂的。如果你想上臉譜、油土鱉和推特,這些就靠你自己了,這裡只是gg而已。

  程式猿嘛,總是想通過自己的雙手來解決點問題。那顆change the world的心沒有變,就像部落格園的口號那樣“代碼改變世界”。看到哪個東西不爽,自己造一個吧。IT界這樣的例子太多了,天天用的Vi、github等等。好了,就到這,1024去,走起。。。

  那道牆著實可恨!

python檢測代理IP可否翻越GFW

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.