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

一、判断代理IP是否有效

  • proxies:代理,分为http与https两种,爬取不同网站时需要选用不同类型的proxies,只有当proxies类型与想访问的网站类型相同时代理ip才会起作用,否则request请求使用的是你真实的ip地址,参考代理IP中的 proxies 介绍及使用
  • re.findall():返回string中所有与pattern相匹配的全部字串,返回形式为数据,详细用法参考正则表达式 re.findall 用法、正则表达式 - 元字符
    re.findall(pattern,string,flags=0)
    代码如下,主要参考测试代理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 = 3proxies = PROXIES_NEW['https']#IP = random.choice(proxies)采用随机读取可能会造成部分重复读,部分未读到#循环读取代理ip池中ipIP = proxies[i]# print(IP)# print(type(IP))#\将下一个字符标记为一个特殊字符,\d匹配一个数字字符,等价于[0-9],\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+1except:print("代理IP无效!")#print(111)# else:#     print('success')num += 1

爬虫工具之selenium(五)-建立代理IP池相关推荐

  1. python3之爬虫代理IP的使用+建立代理IP池

    爬虫代理IP的使用+建立代理IP池 代理`IP`的使用 建立代理`IP`池 完整代码 代理IP的使用 先了解一下百度百科定义的IP 为什么要使用代理IP? 反爬(反网络爬虫) 示例: 测试网址 htt ...

  2. [爬虫架构] 如何在分布式爬虫架构中动态维护一个代理IP池(付费代理)

    前言: 当分布式爬虫使用代理IP技术时,通过直接在爬虫程序中添加平台api接口的方式已经不能满足我们了,因为分布式的爬虫架构每秒的代理IP-URL的请求数会远远大于平台限制的请求频率,当然,对于没有限 ...

  3. python通过ip池爬_python 爬虫 代理ip池(适合初学者)

    初次学习python爬虫的朋友在频繁访问被爬取页面网站时都会被拦截,也就是限制ip.这里教教大家建立代理ip池. #!/usr/bin/env python3# -*- coding: utf-8 - ...

  4. Python爬虫-代理ip池建立

    代理IP池建立 前言 之前提到过urllib和requests的利用代理ip的访问方式 . https://blog.csdn.net/zhouchen1998/article/details/813 ...

  5. 【实用工具系列之爬虫】python实现爬取代理IP(防 ‘反爬虫’)

    系列 [实用工具系列之爬虫]python实现爬取代理IP(防 '反爬虫') [实用工具系列之爬虫]python实现快速爬取财经资讯(防 '反爬虫') 本文使用python实现代理IP的爬取,并可以防' ...

  6. 如何建立爬虫代理ip池

    目录 一.为什么需要建立爬虫代理ip池 二.如何建立一个爬虫代理ip池 原文地址:https://www.cnblogs.com/TurboWay/p/8172246.html 一.为什么需要建立爬虫 ...

  7. python:从零开始教你建立爬虫代理ip池

    一.为什么需要建立爬虫代理ip池 在众多的网站防爬措施中,有一种是根据ip的访问频率进行限制的,在某段时间内,当某个ip的访问量达到一定的阀值时,该ip会被拉黑.在一段时间内被禁止访问.这种时候,可以 ...

  8. Python3网络爬虫(十一):爬虫黑科技之让你的爬虫程序更像人类用户的行为(代理IP池等)

    转载请注明作者和出处:http://blog.csdn.net/c406495762 运行平台: Windows Python版本: Python3.x IDE: Sublime text3 前言 黑 ...

  9. 爬虫单个ip代理设置_爬虫怎样设置代理ip池

    在网络迅速发展的今天,互联网企业层出不穷,爬虫工作者也越来越多,大家都知道,代理ip是爬虫工作者的一个有力助手,今天小编在这里就与大家分享一下如何设置代理池以及伪装成浏览器的方法,请看下面的介绍. 1 ...

最新文章

  1. idea的tomcat配置文件在哪里修改_MyBatis配置文件详解
  2. 深入理解YouTube推荐系统算法!
  3. 牛客练习赛61 D 最短路变短了(最短路,反向最短路)难度⭐⭐⭐★
  4. Python处理时间日期模块
  5. JavaScript中常用的BOM属性
  6. (35)23种设计模式研究之六【命令模式】
  7. 【英语学习】【English L06】U01 Breakfast L3 I'm full from my brunch
  8. springmvc工作原理和源码分析
  9. Kafka从上手到实践-Kafka集群:重要配置和性能探讨 | 凌云时刻
  10. [Linux] ubuntu 安装 Wireshark
  11. SketchUp 有哪些实用的插件?
  12. RabbitMQ的优势和劣势
  13. 谷歌浏览器扩展程序manifest.json参数详解
  14. 缇、像素转厘米的方法
  15. 基于SVPWM的两电平逆变器MATLAB仿真模型 仿真搭建的很有条理
  16. 与蓝色巨人同行,葡萄城ComponentOne将全面服务于大连IBM工作室
  17. Autoit3--检测窗口变化PixelChecksum--软件自动化测试学习笔记
  18. 怎么选择日语学习资料才能避坑不踩雷?(纯干货,建议收藏)
  19. Python计算歌手得分数案例
  20. 移相全桥DCDC峰值电流控制PCMC和电压模式控制VMC对比

热门文章

  1. 拍卖行游戏测试用例分析
  2. sqlalchemy表关系之多对多
  3. 学习上下界网络流小记
  4. 360财团为何失手Opera:资金或没能如期获准出境
  5. MATLAB程序设计与应用 2. 第2章 MATLAB数据及其运算 2.1 MATLAB数值数据 2.2 MATLAB矩阵的表示 2.3 变量及其操作
  6. IDEA代码统计插件Statistic-统计项目代码文件数及代码行数
  7. turtle六边形绘制
  8. 谷歌glog日志格式修改
  9. 分布式商业的春天已来
  10. 纯CSS实现左右拖拽改变布局大小 使用CSS3中resize属性 水平,垂直拖动元素,改变大小