Heim  >  Artikel  >  Backend-Entwicklung  >  Python crawlt verfügbare Proxy-IPs

Python crawlt verfügbare Proxy-IPs

高洛峰
高洛峰Original
2017-02-25 10:57:121851Durchsuche

Vorwort

Nehmen Sie als Beispiel eine kürzlich entdeckte kostenlose Proxy-IP-Website: http://www.xicidaili.com/nn/. Bei der Verwendung habe ich festgestellt, dass viele IPs nicht verwendet werden können.

Also habe ich ein Skript in Python geschrieben, das die verfügbaren Proxy-IPs erkennen kann.

Das Skript lautet wie folgt:

#encoding=utf8
import urllib2
from bs4 import BeautifulSoup
import urllib
import socket
 
User_Agent = 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0'
header = {}
header['User-Agent'] = User_Agent
 
'''
获取所有代理IP地址
'''
def getProxyIp():
 proxy = []
 for i in range(1,2):
  try:
   url = 'http://www.xicidaili.com/nn/'+str(i)
   req = urllib2.Request(url,headers=header)
   res = urllib2.urlopen(req).read()
   soup = BeautifulSoup(res)
   ips = soup.findAll('tr')
   for x in range(1,len(ips)):
    ip = ips[x]
    tds = ip.findAll("td")
    ip_temp = tds[1].contents[0]+"\t"+tds[2].contents[0]
    proxy.append(ip_temp)
  except:
   continue
 return proxy
  
'''
验证获得的代理IP地址是否可用
'''
def validateIp(proxy):
 url = "http://ip.chinaz.com/getip.aspx"
 f = open("E:\ip.txt","w")
 socket.setdefaulttimeout(3)
 for i in range(0,len(proxy)):
  try:
   ip = proxy[i].strip().split("\t")
   proxy_host = "http://"+ip[0]+":"+ip[1]
   proxy_temp = {"http":proxy_host}
   res = urllib.urlopen(url,proxies=proxy_temp).read()
   f.write(proxy[i]+'\n')
   print proxy[i]
  except Exception,e:
   continue
 f.close()
 
    
if __name__ == '__main__':
 proxy = getProxyIp()
 validateIp(proxy)

Öffnen Sie nach erfolgreicher Ausführung die Datei unter Laufwerk E und Sie können sehen, dass die folgenden Proxy-IP-Adressen und -Ports verfügbar sind:

Python crawlt verfügbare Proxy-IPs

Zusammenfassung

Das ist nur so die erste Crawl-IP-Adresse der Seite. Bei Bedarf können Sie noch einige weitere Seiten crawlen. Gleichzeitig wird die Website von Zeit zu Zeit aktualisiert, daher wird empfohlen, beim Crawlen nur die ersten paar Seiten zu crawlen. Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für alle hilfreich ist, die den Umgang mit Python erlernen.

Weitere Artikel zu Proxy-IPs, die für das Python-Crawling verfügbar sind, finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn