爬虫工具之selenium(五)

479次阅读
没有评论
爬虫工具之selenium(五)

主要思路是分两步:第一步判断代理IP是否有效,第二步爬取免费网站代理IP,第三步循环判断爬取的代理IP是否有效

一、判断代理IP是否有效

import random import requests import re

''' 设计思路:利用http://icanhazip.com/返回的IP进行校验,如返回的是代理池的IP,说明代理有效,否则实际代理无效(也可以利用) '''

# 代理ip池:proxies主要指定代理 PROXIES_NEW = { "https": [ "https://175.42.129.107:9999", "https://115.221.246.181:9999", "https://121.233.207.161:9999", "https://36.248.133.23:9999", "https://117.69.150.50:9999", ] }

#提取代理ip池中ip数量,循环提取 lens = len(PROXIES_NEW['https']) print(lens) num = 1 i=0 while num <= lens:

try: #设置一个三次重连的机制 requests.adapters.DEFAULT_RETRIES = 3 proxies = PROXIES_NEW['https'] #IP = random.choice(proxies)采用随机读取可能会造成部分重复读,部分未读到 #循环读取代理ip池中ip IP = proxies[i] # print(IP) # print(type(IP)) #将下一个字符标记为一个特殊字符,d匹配一个数字字符,等价于[09],d+匹配一个以上数字字符 b = re.findall('//(d+.d+.d+.d+):', IP)[0] b = b.replace('.', '') print(b) # thiProxy = "http://" + IP # thisIP = "".join(IP.split(":")[0:1]) # print(thisIP) #res = requests.get(url="http://icanhazip.com/", timeout=8, proxies={"https": "https://113.140.1.82:53281"}) #利用http://icanhazip.com/返回的IP进行校验,如返回的是代理池的IP,说明代理有效,否则实际代理无效 #设置连接超时:你的客户端实现到远端及其端口的连接时,request会等待的描述,如果不设置,那么请求超时代码就会卡在哪里,不报错也没有request请求的响应 res = requests.get(url="http://icanhazip.com/", timeout=8) proxyIP = res.text # print(proxyIP) a = proxyIP.replace('.', '') print(a) if int(a) == int(b): print("代理IP:'" + proxyIP + "'有效!") else: print("返回不是代理池中的ip,代理IP无效!") i=i+1 except: print("代理IP无效!") #print(111) # else: # print('success') num += 1

神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试

相关文章:

版权声明:Python教程2022-10-24发表,共计1716字。
新手QQ群:570568346,欢迎进群讨论 Python51学习