python 爬取西刺免费代理ip 并使用telnetlib.Telnet验证是否有效
生活随笔
收集整理的這篇文章主要介紹了
python 爬取西刺免费代理ip 并使用telnetlib.Telnet验证是否有效
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
最近運(yùn)行使用時(shí)間2017.12.01
運(yùn)行結(jié)果正常
運(yùn)行環(huán)境python.27
#coding:utf8 from bs4 import BeautifulSoup import urllib2 import sys reload(sys) import telnetlibdef getProxyList(targeturl="http://www.xicidaili.com/nn/"):# 創(chuàng)建變量查看爬取IP數(shù)量countNum=0# 創(chuàng)建打開(kāi)txt文件proxyFile=open('ip_port.txt','a')# 設(shè)置報(bào)頭requestHeader={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0"}# 爬取前五頁(yè)for page in range(1,5):url=targeturl+str(page)print(url)request=urllib2.Request(url,headers=requestHeader)html_doc=urllib2.urlopen(request).read()# 使用bs4匹配soup=BeautifulSoup(html_doc,"html.parser")trs=soup.find('table',id='ip_list').find_all('tr')for tr in trs[1:]:tds=tr.find_all('td')# 國(guó)家if tds[0].find('img') is None:nation='未知'locate='未知'else:nation=tds[0].find('img')['alt'].strip()locate=tds[4].text.strip()ip=tds[1].text.strip()# print(ip)port=tds[2].text.strip()# print(port)anony=tds[4].text.strip()# print(anony)protocol=tds[5].text.strip()# print(protocol)speed=tds[8].text.strip()time=tds[9].text.strip()proxyFile.write('%s|%s|%s|%s|%s|%s|%s|%s\n' % (nation, ip, port, locate, anony, protocol, speed, time))countNum += 1proxyFile.close()return countNum# 驗(yàn)證代理有效性 def verifyProxyList():inFile = open('ip_port.txt', 'rb')outFile = open('verified.txt', 'w')while True:# 從ip_port.txt文件中把之前爬取的ip和端口取出來(lái)驗(yàn)證ll=inFile.readline().strip()if len(ll) == 0:breakline=ll.strip().split('|')ip=line[1]port=line[2]# 判斷ip是否可用,有效則寫(xiě)入到verified.txt文件中try:telnetlib.Telnet(ip, port, timeout=2)outFile.write(ll+"\n")print 'success' + ip + portexcept:print 'connect failed'# 關(guān)閉文件inFile.close()outFile.close()if __name__=='__main__':proxynum=getProxyList("http://www.xicidaili.com/nn/")print(u"國(guó)內(nèi)高匿:"+str(proxynum))# proxynum = getProxyList("http://www.xicidaili.com/nt/")# print u"國(guó)內(nèi)透明:" + str(proxynum)# proxynum = getProxyList("http://www.xicidaili.com/wn/")# print u"國(guó)外高匿:" + str(proxynum)# proxynum = getProxyList("http://www.xicidaili.com/wt/")# print u"國(guó)外透明:" + str(proxynum)verify=verifyProxyList()print("降龍十八掌,打完收工")總結(jié)
以上是生活随笔為你收集整理的python 爬取西刺免费代理ip 并使用telnetlib.Telnet验证是否有效的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: H264码流打包分析
- 下一篇: 谈谈两种标准库类型---string和v