如何用免费代理IP爬数据

技术如何用免费代理IP爬数据如何用免费代理IP爬数据,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一.前言玩爬虫的都避免不了各大网站的反爬措施限制,比较常见

相信很多没有经验的人,对于如何使用免费代理IP抓取数据都是一窍不通的。因此,本文总结了问题产生的原因及解决方法。希望你能通过这篇文章解决这个问题。

一.前言

玩爬虫的都无法避免各大网站反爬措施的限制。通过定时检查一个ip地址的流量来判断用户是否是“网络机器人”是很常见的,也叫爬虫。如果被识别,就会面临被ip封杀的风险,让你无法访问网站。

如何用免费代理IP爬数据

一般的解决方案是用代理ip爬行,但是收取的代理ip一般比较贵。互联网上有很多免费的代理ip网站,但由于时效性的影响,大部分地址无法使用。维护代理ip池有很多教程,就是把可以抓取检测的代理ip放入“代理池”,以后需要的时候再从中提取。在我看来,这个效率比较低,因为这样的IP地址很快就会失效。

二.抓取IP地址

让我们开始实战操作。

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

如何用免费代理IP爬数据

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

如何用免费代理IP爬数据

3.这是一个简单的静态网页。我们使用requests和bs4来下载ip地址和对应的端口,如下图所示。

如何用免费代理IP爬数据

4.每一行ip地址由5个标签组成,我们需要第一个标签(对应的ip地址)和第二个标签(对应的端口),所以从第一个开始,我们每5个取出IP地址(项[:33605]),从第二个开始,我们每5个取出对应的端口(项[1:5])。

如何用免费代理IP爬数据

三.验证IP有效性

百度百科在这里被视为目标网站,但这个看似普通的网站的防爬措施极其严格,爬了几条内容后请求失败。在这里,我将以百度百科为例,演示如何使用免费代理ip。

1.首先,我爬下了12306上所有的火车站名称,但是没有归属信息。

如何用免费代理IP爬数据

2.然后通过站名构建百度百科url信息,分析网页元素,抓取火车站地址信息。网页元素如下图所示:

如何用免费代理IP爬数据

3.因此,我们只需要在class_='basicInfo-item '的标签内容中寻找“省”或“市”的字符,然后输出,最后添加一个while True循环,在ip可以正常抓取数据的时候打破这个循环;如果ip被禁止,立即重新请求一个新的ip进行爬网。直接代码如下图所示。

如何用免费代理IP爬数据

4.for循环是遍历所有火车站,尝试是检查ip是否仍然可以使用。如果没有,则在except中请求一个新的ip,爬行效果如下图所示:

如何用免费代理IP爬数据

这种方法可以解决爬行动物下次被禁的问题。

主要介绍如何在IP代理网站上抓取可用的IP,以及如何通过Python脚本验证IP地址的时效性。如果爬虫被禁,可以用这个方法解决。

看完以上,你知道如何用免费的代理IP抓取数据吗?如果您想学习更多技能或了解更多相关内容,请关注行业资讯频道。感谢阅读!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/54363.html

(0)

相关推荐

  • 数据库的信息安全管理有哪些

    技术数据库的信息安全管理有哪些本篇内容主要讲解“数据库的信息安全管理有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“数据库的信息安全管理有哪些”吧!一、操作系统账号的安全

    攻略 2021年11月15日
  • 教师资格考试多少分及格,教师资格证综合素质多少分合格

    技术教师资格考试多少分及格,教师资格证综合素质多少分合格教师资格证综合素质70分合格教师资格考试多少分及格。教师资格证综合素质卷面分为150分,按标准转换为120分制的70分为通过。笔试合格线由教育部考试中心确定,具有合

    生活 2021年10月31日
  • python时间日期运算教程(python时间的数据类型如何表示)

    技术怎么进行python日期时间处理这篇文章给大家介绍怎么进行python日期时间处理,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。开发中常用的日期操作还有哪些?时区转换显示日期格式化秒数 与 日期

    攻略 2021年12月15日
  • css怎么将背景图居中

    技术css怎么将背景图居中这篇文章主要介绍css怎么将背景图居中,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! css中,可利用“background-position

    攻略 2021年12月9日
  • C++为什么不要拿着锁调用未知代码

    技术C++为什么不要拿着锁调用未知代码本篇内容主要讲解“C++为什么不要拿着锁调用未知代码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++为什么不要拿着锁调用未知代码”吧

    攻略 2021年11月25日
  • 云原生时代是Java还是Go

    技术云原生时代是Java还是Go这篇文章主要讲解了“云原生时代是Java还是Go”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“云原生时代是Java还是Go”吧!Java曾

    攻略 2021年10月30日