【爬虫修炼和实战】三、免费IP/数据收集——爬取筛选和更新免费IP池(工具篇)

第三篇记录一下如何解决学习爬虫经常产生的IP的需求问题,时常苦苦搜寻,一个个复制粘贴测试是否可用甚是辛苦,突发奇想,尝试一劳多得,遂自己造个轮子,调用即可,岂不美哉,作为日常学习使用。

2020.5.26再次更新(添加了IPSearch_0使用方法)

项目已上传到GitHub:https://github.com/dataformydream/IPsearch

本文为IPSearch第一版本:IPSearch_0.py,可用来参考实现思路和学习总结。

申明:本文和相关代码只做学习用途,请合理合法使用。

目录

一、IP相关

二、功能需求

三、实现

思路

代码

使用方法

输出


一、IP相关

暂只知道以下能获取到IP的途径:

1、付费:高匿,稳定(相对),调用接口省事,适合大规模爬虫,个人学习一般用不到。

2、免费:IP提供商收集的免费IP,当然大多不能用,需要自己筛选。

本篇暂选择了三个免费IP网站(国内)抓取IP,有些网站也提供了免费的调用接口,为练习爬虫还是直接爬取。

免费IP网站也有反爬措施和robot协议,建议遵守规则,详细阅读,控制访问频率,勿商用。

网站:西刺西拉高可用全球免费代理IP库

二、功能需求

为了方便使用,将以下功能封装在一个py文件中:

1、封装通用的requests库get方法为一个函数,返回get结果,主要实现随机选取user-agent,随机选取IP,若IP被识别则更换重新爬取,直到爬取成功,同时删去IP池中被封的IP,维持IP池可靠可用。

2、headers和proxies作为全局变量调用,headers可灵活添加xm-sign,referer,cookies等参数(即可变字典),IP池proxies为不重复列表

3、通过有限的IP或本机地址,抓取免费IP网站,对可用IP进行筛选,筛选条件可为类型(高匿透明等),IP类型(http、https)、响应速度、存活时间。筛选后存入IP池。(数据来源于IP网站)

4、能针对特定的网站对IP池进行筛选,维护IP池对爬虫网站访问的稳定高效,借此提高抓取效率,而不是网站用来检测是否可用的百度等首页。(能访问百度不一定能爬要爬的网站)

5、要获取的IP数可选(没有上限,数目不够自动遍历网站更多页面,甚至可爬光IP网站所有IP列表页面,不过时间极长,极不推荐,给网站服务器造成不必要的负担,甚至可能有法律风险,一般学习用爬虫10到20个IP足够了),并能在当前爬虫程序目录下生成json文件保存可用IP列表(只要能通过4中的筛选一般不会失效,生成后下次运行爬虫直接调用进IP池,会提前筛选一次,不够设定数目才会请求IP网站,大大减少重复获取IP时间)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值