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

首頁 > 編程 > Python > 正文

使用python驗證代理ip是否可用的實現方法

2020-02-15 22:31:02
字體:
來源:轉載
供稿:網友

在使用爬蟲爬取網絡數據時,如果長時間對一個網站進行抓取時可能會遇到IP被封的情況,這種情況可以使用代理更換ip來突破服務器封IP的限制。

隨手在百度上搜索免費代理IP,可以得到一系列的網站,這里我們通過對西刺網站的抓取來舉例。

通過編寫一個爬蟲來抓取網站上面的IP地址,端口,及類型,把這些信息存到本地。這里不做介紹。

驗證代理IP是否可用。原理是使用代理IP訪問指定網站,如果返回狀態為200,表示這個代理是可以使用的。

# _*_ coding:utf-8 _*_import urllib2import reclass TestProxy(object):  def __init__(self):    self.ip = '106.46.136.64'    self.port = '808'    self.url = 'http://www.baidu.com'    self.timeout = 3    self.regex = re.compile(r'baidu.com')    self.run()  def run(self):    self.linkWithProxy()  def linkWithProxy(self):    server = 'http://'+ self.ip + ':'+ self.port    opener = urllib2.build_opener(urllib2.ProxyHandler({'http':server}))    urllib2.install_opener(opener)    try:      response = urllib2.urlopen(self.url, timeout=self.timeout)    except:      print '%s connect failed' % server      return    else:      try:        str = response.read()      except:        print '%s connect failed' % server        return      if self.regex.search(str):        print '%s connect success .......' % server        print self.ip + ':' + self.portif __name__ == '__main__':  Tp = TestProxy()

也可以使用requests包來進行驗證,要少寫好多代碼

import requeststry:  requests.get('http://wenshu.court.gov.cn/', proxies={"http":"http://121.31.154.12:8123"})except:  print 'connect failed'else:  print 'success'

把驗證通過的IP保存在redis里面,在IP被禁止的時候可以從redis中取出來使用。

受@齊俊杰的提醒,添加一種使用telnet來驗證的方法:

import telnetlibtry:  telnetlib.Telnet('127.0.0.1', port='80', timeout=20)except:  print 'connect failed'else:  print 'success'

總結

以上所述是小編給大家介紹的使用python驗證代理ip是否可用,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林站長站網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 隆昌县| 伊宁市| 鄢陵县| 福建省| 诸暨市| 横山县| 阿坝县| 台山市| 祁东县| 高陵县| 通城县| 故城县| 稷山县| 洮南市| 福贡县| 周至县| 金昌市| 皮山县| 河曲县| 永济市| 阜康市| 淅川县| 阿拉善右旗| 西城区| 水富县| 德格县| 辛集市| 安乡县| 鄂温| 南澳县| 达日县| 凤山市| 运城市| 新疆| 浦东新区| 修水县| 西乌珠穆沁旗| 鸡东县| 富宁县| 浮山县| 扬州市|