没错,它就是fiddler啦。
爬取利用fiddler华中科技大学公众号

极致简约的界面,老外写的软件就是看得舒服,它的基本使用我就不说啦,而且他还有一个好玩的用处,就是可以用来对那些异步刷新的页面进行爬取,异步刷新就是像于百度图片或者查看微信历史文章时,它并不是像一般的网站直接会返回所有的html信息,而是在使用者光标下滑到底时,再在同一个页面刷新出新的内容,然后就可以继续往下翻啦。从我们的角度来看就像网页变长了,但实际上这是一种异步请求返回数据的技术,好处就是只用建立一个TCP连接,而不用重新再打开新的网页,省去了三次握手的时间消耗,这明显要节约时间。(可能现在网速太快了感觉不出来呃。。。)
所以我用能用它来爬去公众号的消息,比如俺对研究生招生个公众号发布的信息挺感兴趣的,他们公众号的风格是这样的:

爬取利用fiddler华中科技大学公众号
哇这不是学长学姐们最爱的复试经验贴么,此外好多别的信息,我滴任务就是把他们全都爬下来,804篇?好像有点多emmmmm
呃出了点意外,刚才是想写完程序再写文章的,可是因为刚才请求过多,腾讯把我的账号直接封停了,也不是封停吧,就是它那边的服务器“暂时”(希望…)把我的请求屏蔽了,所以现在的结果是这样的:

爬取利用fiddler华中科技大学公众号
哈哈哈哈哈哈哈哈哈,不过我数据已经爬下来了,就说一下思路吧,就是之前在我一直下滑的时候,可以在fiddler上面看到有很多信息一直在请求,类似这样的:
爬取利用fiddler华中科技大学公众号

而且右边的表单是:
爬取利用fiddler华中科技大学公众号
请求返回的数据是json格式的:
爬取利用fiddler华中科技大学公众号
其中一些对我们有价值的信息是offset表示偏移量,count=10表示一次js请求返回10篇内容,对应我们的十篇文章,对我的直观的感受就是每当下滑10篇文章就刷新一次,然后可以接着往下看,next_offset就是下一个请求的偏移量,这些都是构成url的组成成分;而文章真正的地址的信息则藏在返回的json数据中。
因此我们可以得到思路,通过fiddler抓包,根据刷新时产生的请求和表单数据,来推断出浏览器和服务器之间的数据交流方式,从中截取数据再人为的广义化来找到下一次请求的规律,这样可以用程序一直往下请求同时爬取我们需要的信息。

具体代码:
爬取利用fiddler华中科技大学公众号
这表示网站的基地址,即所有的请求都是在这个上面建立的。
爬取利用fiddler华中科技大学公众号
构造请求头和Cookies,这个可以想象成把程序伪装成熟人作案,这个很好也很符合正常世界,熟人作案成功率当然会高一些hhhhhhha,不过在这里是必要的,因为微信有它自己的反爬措施,不加Cookies等连数据都返回不了~
爬取利用fiddler华中科技大学公众号
构建参数params,请求信息的ur就等于上面的base_url + params。
爬取利用fiddler华中科技大学公众号
数据获取函数,其中的:
爬取利用fiddler华中科技大学公众号
这两行就可把网页转化为pdf格式保存,python就是好用hhhhhhhhha。
运行的结果也很nice:

爬取利用fiddler华中科技大学公众号
是爬了好多,不过我也不会去看的哈哈哈哈哈哈,纯粹技术上的喜欢而已,这周真的丰收的一周呀,总结就到这吧~

相关文章:

  • 2021-07-15
  • 2021-06-17
  • 2021-12-06
  • 2021-07-26
  • 2022-01-03
  • 2021-06-28
  • 2021-07-03
  • 2022-01-13
猜你喜欢
  • 2021-12-03
  • 2021-12-22
  • 2022-01-26
  • 2022-01-21
  • 2021-09-28
  • 2022-01-29
相关资源
相似解决方案