国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python爬蟲抓取代理IP并檢驗可用性的實例

2020-02-23 00:02:19
字體:
供稿:網(wǎng)友

經(jīng)常寫爬蟲,難免會遇到ip被目標網(wǎng)站屏蔽的情況,銀次一個ip肯定不夠用,作為節(jié)約的程序猿,能不花錢就不花錢,那就自己去找吧,這次就寫了下抓取 西刺代理上的ip,但是這個網(wǎng)站也反爬!!!

至于如何應(yīng)對,我覺得可以通過增加延時試試,可能是我抓取的太頻繁了,所以被封IP了。

但是,還是可以去IP巴士試試的,條條大路通羅馬嘛,不能吊死在一棵樹上。

不廢話,上代碼。

#!/usr/bin/env python# -*- coding:utf8 -*-import urllib2import timefrom bs4 import BeautifulSoupimport sysreload(sys)sys.setdefaultencoding( "utf-8" )req_header = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11', 'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', #'Accept-Language': 'en-US,en;q=0.8,zh-Hans-CN;q=0.5,zh-Hans;q=0.3', 'Accept-Charset':'ISO-8859-1,utf-8;q=0.7,*;q=0.3', 'Accept-Encoding':'en-us', 'Connection':'keep-alive', 'Referer':'http://www.baidu.com/' }req_timeout = 5testUrl = "http://www.baidu.com/"testStr = "wahaha"file1 = open('proxy.txt' , 'w')# url = ""# req = urllib2.Request(url,None,req_header)# jsondatas = urllib2.urlopen(req,None,req_timeout).read()cookies = urllib2.HTTPCookieProcessor()checked_num = 0grasp_num = 0for page in range(1, 160): req = urllib2.Request('http://www.xici.net.co/nn/' + str(page), None, req_header) html_doc = urllib2.urlopen(req, None, req_timeout).read() # html_doc = urllib2.urlopen('http://www.xici.net.co/nn/' + str(page)).read() soup = BeautifulSoup(html_doc) trs = soup.find('table', id='ip_list').find_all('tr') for tr in trs[1:]:  tds = tr.find_all('td')  ip = tds[1].text.strip()  port = tds[2].text.strip()  protocol = tds[5].text.strip()  if protocol == 'HTTP' or protocol == 'HTTPS':   #of.write('%s=%s:%s/n' % (protocol, ip, port))   print '%s=%s:%s' % (protocol, ip, port)   grasp_num +=1   proxyHandler = urllib2.ProxyHandler({"http": r'http://%s:%s' % (ip, port)})   opener = urllib2.build_opener(cookies, proxyHandler)   opener.addheaders = [('User-Agent',         'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36')]   t1 = time.time()   try:    req = opener.open(testUrl, timeout=req_timeout)    result = req.read()    timeused = time.time() - t1    pos = result.find(testStr)    if pos > 1:     file1.write(protocol+"/t"+ip+"/t"+port+"/n")     checked_num+=1     print checked_num, grasp_num    else:     continue   except Exception,e:    continuefile1.close()print checked_num,grasp_num

個人感覺代碼里沒有太復(fù)雜的,就沒有加注釋,相信大家基本可以理解,如有問題也請多批評指正,共同進步!

以上這篇Python爬蟲抓取代理IP并檢驗可用性的實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持武林站長站。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 攀枝花市| 广汉市| 临泉县| 武汉市| 南雄市| 奉节县| 昌乐县| 图木舒克市| 邳州市| 桂东县| 昌都县| 巍山| 突泉县| 年辖:市辖区| 咸丰县| 友谊县| 青海省| 南部县| 江阴市| 贵港市| 望江县| 湖南省| 尉犁县| 北票市| 禹州市| 施甸县| 开远市| 莫力| 庄河市| 长泰县| 贵阳市| 深圳市| 绍兴市| 青岛市| 平陆县| 遵义市| 天峨县| 双牌县| 广元市| 华蓥市| 昌乐县|