本博文介绍一种对获取到的IP代理进行简易的检查
思路 : 使用代理去登入百度搜索IP页面看是否能返回 response.status_code == 200,如果可以输出当前使用的IP的归宿地,若不行提示该IP代理失效,输出效果如下图
代码非常简单,在这不多做阐述,有问题可以在评论区给我留言,我尽可能一一解答,接下来是代码部分(PS:只要在main中改写你要测试的ip就行,整个类无需修改操作,如果有多个ip,main函数中测试ip代理改成一个列表,方法调用改成一个for循环就可以实现多ip代理测试了)
import requests
from lxml import etree
#验证IP是否可用以及获取IP归宿地
class Verify_IP():
def check_ip(self, ip):
url = 'http://www.baidu.com/s?word=ip'
proxy_str = ip
proxy = {
'http' : proxy_str,
'https' : proxy_str,
}
try:
response = requests.get(url, proxies = proxy, timeout = 5)
#判断网页返回值是否为 200,若是,则用xpath获取对应内容
if response.status_code == 200:
html_ete = etree.HTML(response.text)
ip = html_ete.xpath('//span[@class="c-gap-right"]/text()')[0]
site = html_ete.xpath('//div[@class="c-span21 c-span-last op-ip-detail"]/table/tr/td/text()')[1]
print(ip,site)
return True
else:
return False
except Exception as e:
print('该IP失效:' + ip)
if __name__ == '__main__':
ip = 'http://59.57.148.209:9999'
Verify_IP().check_ip(ip)
关于获取测试代理ip可以跳转至下面这个博文 :
https://blog.csdn.net/weixin_44354777/article/details/100803598