如何用Python爬虫抓取代理IP

技术如何用Python爬虫抓取代理IP本篇文章为大家展示了如何用Python爬虫抓取代理IP,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。不知道大家在访问网站的时候有没有遇到过这

本文向您展示了如何使用Python爬虫来抓取代理IP。内容简洁易懂,一定会让你眼前一亮。希望通过这篇文章的详细介绍,你能有所收获。

不知道大家在访问网站的时候有没有遇到过这样的状况就是被访问的网站会给出一个提示,提示的显示是“访问频率太高”,如果在想进行访问那么必须要等一会或者是对方会给出一个验证码使用验证码对被访问的网站进行解封。之所以会有这样的提示是因为我们所要爬取或者访问的网站设置了反爬虫机制,比如使用同一个IP频繁的请求网页的次数过多的时候,服务器由于反爬虫机制的指令从而选择拒绝服务,这种情况单单依靠解封是比较难处理的,所以一个解决的方法就是伪装本机的IP地址去访问或者爬取网页,也就是我们今天所有跟大家所说的代理IP

目前互联网上有很多代理IP,有免费的,也有付费的。免费但有效的代理很少,而且不稳定,所以付费可能更好。先说代理ip的试用,把可用的IP存到MongoDB,下次拿出来用。

运行平台:Windows。

Python版本:Python3.6。

IDE:崇高的文字

其他:Chrome浏览器。

简要过程如下:

步骤1:了解如何使用请求代理。

第二步:从代理网页抓取到ip和端口。

步骤3:检查已爬网ip是否可用。

步骤4:将已爬网的可用代理存储在MongoDB中。

第五步:从可用ip中存储的数据库中随机选择一个ip,测试成功后返回。

对于请求,代理设置相对简单,只需传入代理参数。

但是需要注意的是,在这里,我在这台机器上安装了包抓取工具Fiddler,并使用它在本地端口8888(使用Chrome插件SwitchyOmega)创建了一个HTTP代理服务,即代理服务为:127.0.0.1:8888。只要我们设置了这个代理,我们就可以成功地将本地ip切换到代理软件连接的服务器ip。

如何用Python爬虫抓取代理IP

在这里,我使用http://httpbin.org/get作为测试网站。当我们访问这个网页时,我们可以得到所请求的信息,其中origin字段是客户端ip,我们可以根据返回的结果来判断代理是否成功。结果如下:

接下来,我们开始抓取代理ip。首先我们打开Chrome浏览器查看网页,找到了IP和端口元素的信息。

如何用Python爬虫抓取代理IP

可以看出,代理ip将ip地址和相关信息存储在表中,因此我们在使用BeautifulSoup时可以轻松提取相关信息。但是,我们要注意被抓取的ip很可能是重复的,尤其是当我们抓取多个代理页面并同时将其存储在同一个数组中时,我们可以使用集合来移除重复的IP。

如何用Python爬虫抓取代理IP

待抓取的Ip页面被抓取并存储在数组中,然后对其中的IPS进行逐一测试。

如何用Python爬虫抓取代理IP

这里,我们使用上述请求设置代理的方法。我们使用http://httpbin.org/ip作为测试网站,它可以直接返回我们的ip地址,然后通过测试后存储在MomgoDB数据库中。

如何用Python爬虫抓取代理IP

连接数据库,指定数据库和集合,并插入数据。

如何用Python爬虫抓取代理IP

最后,运行并检查结果。

如何用Python爬虫抓取代理IP

跑了一段时间后,很少看到连续通过三次测试。快速保存截图。其实毕竟是免费的代理IP,还是很有效的,生存时间真的很短。但是爬行量大,仍然可以找到并使用。如果只是用来练习,还是勉强够用。现在看看数据库中存储了什么。

如何用Python爬虫抓取代理IP

因为爬取的页面不多,有效的IP也不多,我也不是很爬取,所以现在数据库里的IP也不多,但是都保存了。现在让我们看看如何随机取出它。

如何用Python爬虫抓取代理IP

因为担心ip放入数据库一段时间后会失效,所以拿出来之前又测试了一遍。如果我成功返回ip,如果不成功,我会直接从数据库中删除它。

这样,当我们需要使用代理时,我们可以随时通过数据库取出它。

总代码如下:

zhihu.com/people/hdmi-blog

以上内容是如何用Python爬虫抓取代理IP。你学到什么知识或技能了吗?如果你想学习更多的技能或丰富你的知识储备,请关注行业信息渠道。

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

(0)

相关推荐

  • 几何平均,什么是算术平均值和几何平均值

    技术几何平均,什么是算术平均值和几何平均值算术平均数(Arithmetic mean)是表征数据集中趋势的一个统计指标。 它是一组数据之和,除以这组数据之个/项数。算术平均数在统计学上的优点,就是它较中位数、众数更少受到

    生活 2021年10月20日
  • effective C++ 第一章

    技术effective C++ 第一章 effective C++ 第一章第一章 让自己习惯 C++(Accustoming Youself to C++)
    条款1:视C++为一个语言联邦
    C++是个多

    礼包 2021年12月13日
  • 怎么用C#开发超级账本Fabric

    技术怎么用C#开发超级账本Fabric本篇内容介绍了“怎么用C#开发超级账本Fabric ”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读

    攻略 2021年11月26日
  • 鬼的笔顺,鬼字里加一个住多一横念什么

    技术鬼的笔顺,鬼字里加一个住多一横念什么魋 tuí 古书上说的一种毛浅而赤黄鬼的笔顺、形似小熊的野兽。姓。笔画数:17; 部首:鬼; 笔顺编号:32511355432411121 详细解释: 魋 tuí 【名】 神兽〖g

    生活 2021年10月21日
  • Python中如何用Redis

    技术Python中如何用Redis本篇内容主要讲解“Python中如何用Redis”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中如何用Redis”吧!前面我们都

    攻略 2021年11月27日
  • Oracle FGA的示例分析

    技术Oracle FGA的示例分析小编给大家分享一下Oracle FGA的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Oracle

    攻略 2021年12月13日