作者:Python进阶者

来源:Python爬虫与数据挖掘

/1 前言/

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

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

/2 抓取IP地址/

下面就开始实战操作。

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

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

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

4、每一行ip地址都由5个<td>标签组成,而我们需要的是第一个<td>标签(对应IP地址)和第2个<td>标签(对应端口),所以从第一个开始,每隔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地址的时效性,如遇到爬虫被禁的情况就可以用本文的办法进行解决。

---------End---------

关注后回复“w”,加我私人微信

分享”和“在看”是更好的支持!

手把手教你用免费代理ip爬数据相关推荐

  1. 高可用免费代理ip爬取实战

    我们在使用爬虫的时候,会对代理ip有一定程度的需求.今天爬取的这个免费代理网站不是大家已经爬烂的西刺和66等代理网站,是我无意间发现的~ 这个网站还是有一点意思的. 注意到没有,这里的ip地址被换成了 ...

  2. 蚂蚁代理免费代理ip爬取(端口图片显示+token检查)

    分析 蚂蚁代理的列表页大致是这样的: 端口字段使用了图片显示,并且在图片上还有各种干扰线,保存一个图片到本地用画图打开观察一下: 仔细观察蓝色的线其实是在黑色的数字下面的,其它的干扰线也是,所以这幅图 ...

  3. golang爬取免费代理IP

    golang爬取免费的代理IP,并验证代理IP是否可用 这里选择爬取西刺的免费代理Ip,并且只爬取了一页,爬取的时候不设置useAgent西刺不会给你数据,西刺也做反爬虫处理了,所以小心你的IP被封掉 ...

  4. 多线程爬取免费代理ip池 (给我爬)

    多线程爬取免费代理ip池 (给我爬) 文章目录 多线程爬取免费代理ip池 (给我爬) 安装的库 IP 隐藏 代理ip 多线程爬取 读入代理ip 写入代理ip 验证代理ip 解析网页得到代理ip 获取网 ...

  5. Python爬虫:爬取免费代理ip

    之前写的几个爬虫都只能爬取到少量的信息,这是由于一个ip频繁地访问网站,会被认定为非正常的爬虫从而被屏蔽,这时候就需要使用代理ip来访问网站了,具体方法就是在发送request时添加一个proxy参数 ...

  6. 爬取小舒代理免费代理IP,并验证IP是否有效

    爬虫爬取免费代理ip,验证代理ip有效性,保存到本地txt,建立代理池 使用多线程+队列+正则匹配,对免费代理ip网站和查询自身ip网站(验证代理ip是否有效)发送请求,如果代理ip为有效,保存至本地 ...

  7. 简易爬取免费代理IP

    爬取maitian屡次被封,先建立一个免费代理ip池吧 暂时保存为txt格式 思路: 1.找到免费的ip代理网站 以西刺代理的4个网站为例: 国内普通代理: http://www.xicidaili. ...

  8. 爬取免费代理IP并测试

    爬取免费代理IP并测试 写在开头:这次总共爬了三个代理ip的网站,前两个网站经过测试,ip并不能访问我真正想爬的网站 Git仓库:https://gitee.com/jiangtongxueya/my ...

  9. 手把手教你使用scrapy框架来爬取北京新发地价格行情(理论篇)

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 博观而约取,厚积而薄发. 大家好! ...

最新文章

  1. 高亮提示、聚焦控件并滚动到浏览器中干好可以查看到该控件的位置
  2. acegi,IBM的Acegi Security System(1)
  3. Android -- Messenger与Service
  4. python编程入门电子书下载-最经典的25本Python编程开发电子书(附下载地址)!...
  5. java基础(参数传递)
  6. 第14、15教学周作业
  7. [渝粤教育] 西南科技大学 英语语法1 在线考试复习资料
  8. Linux工作笔记-解决spawn: not found与expect: not found问题(安装expect)
  9. CentOS下yum安装mcrypt错误:No package php-mcrypt available.解决方法
  10. ubuntu16.04 安装搜狗输入法
  11. java队列 双队列_Java队列– Java队列
  12. HSQL 中修改字段的语法
  13. 微信 html5 声音,Html5-video ,播放视频有声音无画面(微信H5页面)
  14. 测试固态硬盘好坏的软件,电脑怎么测试ssd固态硬盘|电脑测试ssd固态硬盘的方法...
  15. ijkplayer设置rtmp秒开
  16. Node.js基础(二)-- 模块化、npm与包
  17. 划分数,分苹果问题·计算机算法·动态规划·C/C++
  18. 秋招提前批来了,早就是优势!
  19. cos和sin的使用
  20. WebSocket - 一篇文章读懂websocket

热门文章

  1. MockMvc 模拟请求
  2. js设置单选框为选中状态
  3. 桌面程序使用JavaDB
  4. h5 涂色小游戏完成作画后生成海报 小程序可以放在webview里
  5. iPhone 手机非常有必要下载的6款App,个个实用性爆表
  6. DDR3 AXI4接口读写回环测试
  7. 最好用的PDF阅读器,没有之一
  8. 意法半导体(ST)推出拥有业界最高能效的单片蓝牙4.0网络处理器
  9. Linux 之父:“内核开发者别再临期熬夜提交补丁了,那是高中生干的事儿”
  10. 【VOLTE】ROHC 健壮性包头压缩