Python 快速驗證代理IP是否有效的方法實現
有時候,我們需要用到代理IP,比如在爬蟲的時候,但是得到瞭IP之後,可能不知道怎麼驗證這些IP是不是有效的,這時候我們可以使用Python攜帶該IP來模擬訪問某一個網站,如果多次未成功訪問,則說明這個代理是無效的。
代碼如下:
import requests import random import time http_ip = [ '118.163.13.200:8080', '222.223.182.66:8000', '51.158.186.242:8811', '171.37.79.129:9797', '139.255.123.194:4550' ] for i in range(10): try: ip_proxy = random.choice(http_ip) proxy_ip = { 'http': ip_proxy, 'https': ip_proxy, } print('使用代理的IP:', proxy_ip) response = requests.get("http://httpbin.org/ip", proxies=proxy_ip).text print(response) print('當前IP有效') time.sleep(2) except Exception as e: print(e.args[0]) print('當前IP無效') continue
運行結果如下:
使用代理的IP: {‘http’: ‘118.163.13.200:8080’, ‘https’: ‘118.163.13.200:8080’}
HTTPConnectionPool(host=’118.163.13.200′, port=8080): Max retries exceeded with url: http://httpbin.org/ip (Caused by ProxyError(‘Cannot connect to proxy.’, NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x00000247674F5F88>: Failed to establish a new connection: [WinError 10060] 由於連接方在一段時間後沒有正確答復或連接的主機沒有反應,連接嘗試失敗。’)))
當前IP無效
使用代理的IP: {‘http’: ‘51.158.186.242:8811’, ‘https’: ‘51.158.186.242:8811’}
{
“origin”: “51.158.186.242”
}當前IP有效
使用代理的IP: {‘http’: ‘222.223.182.66:8000’, ‘https’: ‘222.223.182.66:8000’}
{
“origin”: “139.202.62.84, 222.223.182.66”
}當前IP有效
使用代理的IP: {‘http’: ‘51.158.186.242:8811’, ‘https’: ‘51.158.186.242:8811’}
{
“origin”: “51.158.186.242”
}當前IP有效
使用代理的IP: {‘http’: ‘51.158.186.242:8811’, ‘https’: ‘51.158.186.242:8811’}
{
“origin”: “51.158.186.242”
}當前IP有效
使用代理的IP: {‘http’: ‘222.223.182.66:8000’, ‘https’: ‘222.223.182.66:8000’}
HTTPConnectionPool(host=’222.223.182.66′, port=8000): Max retries exceeded with url: http://httpbin.org/ip (Caused by ProxyError(‘Cannot connect to proxy.’, NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x00000247675067C8>: Failed to establish a new connection: [WinError 10060] 由於連接方在一段時間後沒有正確答復或連接的主機沒有反應,連接嘗試失敗。’)))
當前IP無效
使用代理的IP: {‘http’: ‘139.255.123.194:4550’, ‘https’: ‘139.255.123.194:4550’}
HTTPConnectionPool(host=’139.255.123.194′, port=4550): Max retries exceeded with url: http://httpbin.org/ip (Caused by ProxyError(‘Cannot connect to proxy.’, NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x00000247674F55C8>: Failed to establish a new connection: [WinError 10060] 由於連接方在一段時間後沒有正確答復或連接的主機沒有反應,連接嘗試失敗。’)))
當前IP無效
使用代理的IP: {‘http’: ‘51.158.186.242:8811’, ‘https’: ‘51.158.186.242:8811’}
{
“origin”: “51.158.186.242”
}當前IP有效
使用代理的IP: {‘http’: ‘51.158.186.242:8811’, ‘https’: ‘51.158.186.242:8811’}
{
“origin”: “51.158.186.242”
}當前IP有效
使用代理的IP: {‘http’: ‘222.223.182.66:8000’, ‘https’: ‘222.223.182.66:8000’}
HTTPConnectionPool(host=’222.223.182.66′, port=8000): Max retries exceeded with url: http://httpbin.org/ip (Caused by ProxyError(‘Cannot connect to proxy.’, NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x0000024767514908>: Failed to establish a new connection: [WinError 10060] 由於連接方在一段時間後沒有正確答復或連接的主機沒有反應,連接嘗試失敗。’)))
當前IP無效
到此這篇關於Python 快速驗證代理IP是否有效的方法實現的文章就介紹到這瞭,更多相關Python 驗證代理IP是否有效內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 解決pip install報錯:Cannot connect to proxy問題
- python利用proxybroker構建爬蟲免費IP代理池的實現
- python 如何用urllib與服務端交互(發送和接收數據)
- Python爬蟲學習之requests的使用教程
- Python爬蟲之requests庫基本介紹