手把手教你用免费代理ip爬数据

简介:

/1 前言/

玩爬虫的都避免不了各大网站的反爬措施限制,比较常见的是通过固定时间检测某ip地址访问量来判断该用户是否为 “网络机器人”,也就是所谓的爬虫,如果被识别到,就面临被封ip的风险,那样你就不能访问该网址了。

通用的解决办法是用代理ip进行爬取,但是收费的代理ip一般都是比较贵的,网上倒是有很多免费的代理ip网站,但是受时效性影响,大部分地址都不能用,有很多维护代理ip池的教程,即把爬取并检测后能用代理ip放到“代理池里”,等以后要用的时候再从里面提取,在我看来,这种效率比较低,因为这类IP地址很快就失效,我们要做的是边检测边使用,充分保证免费IP的时效性。

/2 抓取IP地址/

下面就开始实战操作。

1.首先我们随便找一个免费代理ip网站,如下图所示。

2、打开网页查看器,分析其网页元素结构,如下图所示。

3、就是一个简单的静态网页,我们用requests和bs4将ip地址和对应端口爬下,如下图所示。

4、每一行ip地址都由5个

标签组成,而我们需要的是第一个标签(对应IP地址)和第2个标签(对应端口),所以从第一个开始,每隔5个取出ip地址(item[::5]),从第二个开始,每隔5个取出对应端口(item[1::5]),参数n为页码,每次只在1页取1个有用的ip地址,最终效果如下图所示:

/3 验证IP有效性/

这里把百度百科作为目标网站,这个看似很普通的网站,反爬措施却极为严格,爬不了几条内容就开始请求失败了,下面我以在百度百科查询全国火车站归属地信息为例演示如何使用免费代理ip。

1、首先我在12306上把所有的火车站名都爬下来了,但是没有归属地信息。

2、然后以站名构造百度百科url信息,分析网页元素,把爬取爬取火车站地址信息,网页元素如下图所示:

3、所以,我们只需在class_='basicInfo-item'的标签内容里查找有无“省”或者“市”的字符,然后输出就行了,最后加一个while True循环,当该ip能正常爬数据时,则break该循环;若该ip被禁,则马上重新请求一个新ip进行爬取。直接上代码如下图所示:

4、其中for循环是遍历所有火车站,try是用于检测该ip还能不能用,若不能,则在except里请求1个新ip,爬取效果如下图所示:

下次再遇到爬虫被禁的情况就可以用此办法解决了。

/4 结语/

本文基于Python网络爬虫技术,主要介绍了去IP代理网站上抓取可用IP,并且Python脚本实现验证IP地址的时效性,如遇到爬虫被禁的情况就可以用本文的办法进行解决。

关于本文的代码,小编已经上传到github了,后台回复“IP代理”四个字,即可获取代码链接,如果觉得不错,记得给个star噢!
IT_

相关文章
|
弹性计算
阿里云服务器开放全部端口给所有IP使用教程
阿里云服务器端口全部开放教程,阿里云端口在安全组中设置,默认只开放22和3389端口,全部开放端口-1/-1,授权给所有IP地址0.0.0.0/0
7237 0
阿里云服务器开放全部端口给所有IP使用教程
|
1月前
|
网络协议 安全 网络架构
无需公网IP联机Minecraft,我的世界服务器本地搭建教程
无需公网IP联机Minecraft,我的世界服务器本地搭建教程
|
1月前
|
数据采集 JSON 大数据
Python爬虫-付费代理推荐和使用
付费代理推荐,讯代理,阿布云代理使用
27 0
|
1月前
|
缓存 监控 安全
有哪些搭建代理服务器的好方法?--代理IP小课堂
今天我们就来说一说,要如何搭建代理服务器,以此来帮助你快速入门代理服务器的搭建和使用。
|
6月前
|
网络协议 关系型数据库 Linux
手把手教你使用phpstudy本地快速搭建网站,并外网访问【无公网IP】
手把手教你使用phpstudy本地快速搭建网站,并外网访问【无公网IP】
|
4月前
|
Java 应用服务中间件 网络安全
解决无公网IP的微信公众号开发调试问题,利用内网穿透的实践经验分享
解决无公网IP的微信公众号开发调试问题,利用内网穿透的实践经验分享
解决无公网IP的微信公众号开发调试问题,利用内网穿透的实践经验分享
|
5月前
|
数据库 容器
本地电脑搭建web服务器、个人博客网站并发布公网访问 【无公网IP】(1)
本地电脑搭建web服务器、个人博客网站并发布公网访问 【无公网IP】(1)
118 0
|
6月前
手把手教你搭建私人kindle图书馆,并内网穿透实现公网访问
手把手教你搭建私人kindle图书馆,并内网穿透实现公网访问
|
数据采集 Python
python爬虫代理ip
python爬虫代理ip
684 0
|
弹性计算 Java Linux
ECS使用体验,从小白到成功部署web项目+frp内网穿透
初次尝试使用ECS,在这两周时间体验内,我从完完全全的小白成长到能够部署一个web项目并学会使用frp内网穿透。在这篇文章中我将和大家分享我的成长经历和使用心得。
624 1
ECS使用体验,从小白到成功部署web项目+frp内网穿透