python爬虫时,判断IP代理是否有效的解决方法

本文介绍了一种通过Python脚本测试并筛选有效IP代理的方法。利用requests库,对预设的IP代理列表进行遍历,通过访问特定网站检测每个IP代理是否可用,并最终输出所有可用的IP地址列表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、不停的请求测试,可以发现网络IP在不断更新 

import requests
import random
# 该网站会返回你请求网站时的IP地址信息
url = 'http://icanhazip.com'
#首先我们在xicidaili.com中获取一些ip代理信息,放入列表中
proxies_list = [
		'http://117.66.167.116:8118',
		'http://118.190.95.35:9001',
		'http://116.77.204.2:80',
		'http://110.40.13.5:80'
	]
# ip_list是后续我们用来更新列表用的,保存真实可用的IP信息
ip_list = []

flag = 1
while True:	
	proxy_ip = random.choice(proxies_list)
	proxies = {'http': proxy_ip}
	try:
        # 如果请求成功,证明这个ip代理是可用的,我们不修改flag的值
		wb_data = requests.get(url=url,proxies=proxies)
	except:
        # 如果请求失败,我们从列表中删除指定的内容选项
		proxies_list.remove(proxies['http'])
		# 并将flag值置为0
		flag = 0
    # 之后我们根据flag的值来判断这个IP地址是否是有效的,这样可以不断地测试。
	if flag == 1:
		ip_list.append(proxies['http'])
		print (ip_list)

2、我们遍历一次所有的IP地址,输出可用的IP地址组成的列表

import requests
url = 'http://icanhazip.com'
proxies_list = [
		'http://117.66.167.116:8118',
		'http://118.190.95.35:9001',
		'http://116.77.204.2:80',
		'http://110.40.13.5:80'
	]
ip_list = []

for proxy_ip in proxies_list:
	print (proxy_ip)
	# print(proxies_list)
	proxies = {'http': proxy_ip}
	try:
		wb_data = requests.get(url=url,proxies=proxies)
		flag = True
	except:
		proxies_list.remove(proxies['http'])
		flag = False

	if flag:
		ip_list.append(proxies['http'])
print (ip_list)

如果有需要请自行获取其他的IP地址,进行调试

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值