开发者社区> python进阶者> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

手把手教你用免费代理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_

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
FastTunnel - 免费好用的内网穿透工具搭建教程
astTunnel是用.net core开发的一款跨平台内网穿透工具,它可以实现将内网服务暴露到公网供自己或任何人访问。 与其他穿透工具不同的是:FastTunnel项目致力于打造一个易于扩展、易于维护的内网穿透框架,任何人都可以基于该框架二次开发,你可以直接通过nuget安装依赖进行开发,当然它也是开箱即用的工具。
0 0
python爬虫代理ip
python爬虫代理ip
0 0
ECS使用体验,从小白到成功部署web项目+frp内网穿透
初次尝试使用ECS,在这两周时间体验内,我从完完全全的小白成长到能够部署一个web项目并学会使用frp内网穿透。在这篇文章中我将和大家分享我的成长经历和使用心得。
0 0
动手搭建真正的网站(一):购买服务器、绑定域名
经过前面这么多篇科普文的铺垫,我想此时可以继续跟我哥讨论“如何搭建一个自己的网站”这个话题了,注意,这回我用的词是搭建,因为确实不需要写代码。
0 0
阿里云服务器开放全部端口给所有IP使用教程
阿里云服务器端口全部开放教程,阿里云端口在安全组中设置,默认只开放22和3389端口,全部开放端口-1/-1,授权给所有IP地址0.0.0.0/0
0 0
阿里云服务器上搭建微信小程序服务端环境
无论是搭建个人博客空间也好,微信小程序也罢,搭建环境必需的两点:云服务器、域名,下面一步步给搭建演示如果在一台阿里云服务器上搭建微信小程序服务端环境
0 0
10分钟搭建属于自己的ngork服务器,实现内网穿透
10分钟搭建属于自己的ngork服务器,实现内网穿透 1、什么是ngrok ngrok 是一个使用go语言编写的反向代理软件,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。
4068 0
阿里云免费服务器搭建学习过程--成功:
  购买阿里云相关服务,这里可以领取优惠券, 有的产品5折优惠哟, 注意, 领取的优惠券30天内有效,尽快使用:领取方式:进入链接后 页面下拉 一键领取全部 或者按需每次领取对应的优惠,领取链接:点击此处链接领取https://promotion.
1490 0
+关注
python进阶者
专注于分享Python网络爬虫、数据挖掘、数据分析、数据处理、数据可视化、大数据、人工智能、云计算、机器学习等工具资源、热点资讯、相关技术文章、学习视频和学习资料等~~~ 该社区将不定期分享各种技术干货、学习资料等。关注我们,您收获的不只是知识,还有经验与人脉!
文章
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
移动域名解析最佳实践
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载