Python爬虫小偏方:突破登录和访问频率限制,多研究对方不同终端产品!

其实在抓取数据时,如果有大量的离散账号和离散IP的话,抓取数据就问题不大了。但是老猿相信大部分的爬虫选手们都没有这么多的资源,所以就会绞尽脑汁研究和各种尝试对方的访问控制策略,如果始终无法破局,这时就要跳出来想下其他办法,比如多使用一下对方的产品,包括APP,网站,微信等,抓包看看他们之间的URL有没有关联,访问控制策略是否一致等,有时你会找到新的突破口。

<tt-image data-tteditor-tag=”tteditorTag” contenteditable=”false” class=”syl1557301645408″ data-render-status=”finished” data-syl-blot=”image” style=”box-sizing: border-box; cursor: text; color: rgb(34, 34, 34); font-family: “PingFang SC”, “Hiragino Sans GB”, “Microsoft YaHei”, “WenQuanYi Micro Hei”, “Helvetica Neue”, Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: block;”>
《Python爬虫小偏方:突破登录和访问频率限制,多研究对方不同终端产品!》 image

<input class=”pgc-img-caption-ipt” placeholder=”图片描述(最多50字)” value=”” style=”box-sizing: border-box; outline: 0px; color: rgb(102, 102, 102); position: absolute; left: 187.5px; transform: translateX(-50%); padding: 6px 7px; max-width: 100%; width: 375px; text-align: center; cursor: text; font-size: 12px; line-height: 1.5; background-color: rgb(255, 255, 255); background-image: none; border: 0px solid rgb(217, 217, 217); border-radius: 4px; transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;”></tt-image>

Python学习交流群:1004391443,这里是python学习者聚集地,有大牛答疑,有资源共享!小编也准备了一份python学习资料,有想学习python编程的,或是转行,或是大学生,还有工作中想提升自己能力的,正在学习的小伙伴欢迎加入学习。

曾经我想要某职业社交APP里的一些用户详细页的信息用来做分析,但是面临如下问题:

  • 该APP必须登陆才能访问所有页面。
  • 你的账号如果没有关注对方,对方的详细介绍页面的很多信息就被隐藏了。
  • APP的用户详细页面一个账号大概只能访问100次/天(有点记不清具体数字了)就不能访问了。

就注册了10个该APP账号,模拟登录后一天只能抓1000千多个,还有好些数据不全(因为没有关注对方), 实在离俺想要的数据量相差较远。

总结上面的问题就是没有足够多的账号,就算账号足够多,每个账号和每个ip也有抓取限制。

于是就把该产品的APP,微信,网页里里外外都翻了一遍,能点的地方都去点一下看看。

有了新的发现:

  • 该APP的用户详细页分享到微信后,通过微信打开可以直接访问,不需要登录,也不需要微信授权,用户详细页信息都是全的(解决了需要关注才能查看全面信息问题)。
  • 通过APP获取分享到微信的url的接口访问频率控制放得很宽松。
  • 虽然在微信上不用登录访问,没有账号限制了,但是还是有单个IP的访问频率控制。

分析完后,老猿舒缓了很多,得出新的抓取思路,就是:

使用10个账号按一定频次通过APP不停的获取每个用户详细页分享到微信的URL,让另外一个程序模仿微信的user-agent不停的访问这些分享到微信的URL(要使用adsl拨号来解决单个IP访问频率控制问题)。

这样通过app加微信的方式解决了对账号的限制问题,实现了曲线救国。

后来就发现好些抓取问题都有这种解决思路,跟我们在网络爬虫小偏方之一里讲的,有的网站为了SEO流量,而把referer来自百度的访问控制放宽了一样。

有的产品为了微信的流量(分享到微信里的页面可以直接打开,点击其他页面时再提示要注册登录),而对来自微信点击访问控制放宽了。

    原文作者:不谈风月_0eb8
    原文地址: https://www.jianshu.com/p/7562f3a2b388
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞