网页抓取qq(一下代理如何使用步骤和步骤?代理IP的试用)

优采云 发布时间: 2021-12-22 16:02

  网页抓取qq(一下代理如何使用步骤和步骤?代理IP的试用)

  不知道大家在访问网站时有没有遇到过这样的情况。被采访的网站会给出提示。提示显示“访问频率太高”。如果要继续,则必须稍等片刻,否则对方会给出验证码,使用验证码解锁访问的网站。出现这个提示的原因是我们要爬取或访问的网站有反爬虫机制。例如,当使用同一个IP频繁请求一个网页的次数过多时,服务器是由于反爬虫机制的指示。因此,我们选择拒绝服务。这种情况单靠解封比较难处理,所以一种解决办法是伪装机器的IP地址来访问或抓取网页,

  目前网上有很多代理ip,有的免费,有的收费。比如West Spur代理等,免费的不花钱,但有效的代理少且不稳定。付费的可能会更好。比如下面介绍的犀牛在线代理。试用一下代理IP,将可用IP保存到MongoDB中,方便下次检索。

  操作平台:Windows

  Python版本:Python3.6

  IDE:崇高的文本

  其他:Chrome浏览器

  该过程的简要说明是:

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

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

  第三步:检查爬取的ip是否可用

  第四步:将爬取到的可用代理存入MongoDB

  第五步:从可用ip的数据库中随机抽取一个ip,测试成功后返回

  对于请求,代理设置比较简单,只需要传入代理参数即可。

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

  

  这里我用它作为测试网站,我们可以访问网页获取请求的相关信息,其中origin字段为客户端ip,根据返回的信息判断代理是否成功结果。返回结果如下:

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

  

  可以看到,代理IP将IP地址和相关信息存储在一个表中,所以我们在用BeautifulSoup提取的时候可以很方便的提取出相关信息,但是需要注意的是,爬取到的IP很可能是重复的。特别是当我们同时抓取多个代理网页并将它们存储在同一个数组中时,我们可以使用集合来去除重复的IP。

  

  爬取到要爬取的页面数的ip后,存入数组,然后一一测试ip。

  

  这里就是上面提到的请求设置代理的方法,我们用它作为测试网站,它可以直接返回我们的ip地址,测试通过后会存入MomgoDB数据库中。

  

  连接数据库然后指定数据库和集合,然后插入数据就OK了。

  

  最后运行查看结果

  

  运行一段时间后,很少看到连续三个测试通过,所以我赶紧保存截图。事实上,它毕竟是一个自由球员。有效的很少,存活时间真的很短。但是,爬取量很大。, 还是可以找到的,如果只是作为练习,勉强够用。现在看看数据库中存储了什么。

  

  因为爬取的页面不多,加上有效IP也很少,我也没有做太多爬取,所以现在数据库里的IP并不多,但是这些IP还是保存了下来。现在让我们看看如何随机取出它。

  

  因为担心ip放入数据库一段时间后会失效,所以重新测试了一下才取出来。如果成功,我将返回该ip。如果不成功,我会把它移出数据库。

  这样,当我们需要使用代理时,就可以随时通过数据库进行检索。

  总代码如下:

  /人/hdmi博客

  本文转载于:,由犀牛社主办

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线