爬取利用fiddler华中科技大学公众号

没错,它就是fiddler啦。
在这里插入图片描述

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

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

在这里插入图片描述
哈哈哈哈哈哈哈哈哈,不过我数据已经爬下来了,就说一下思路吧,就是之前在我一直下滑的时候,可以在fiddler上面看到有很多信息一直在请求,类似这样的:
在这里插入图片描述

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

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

在这里插入图片描述
是爬了好多,不过我也不会去看的哈哈哈哈哈哈,纯粹技术上的喜欢而已,这周真的丰收的一周呀,总结就到这吧~

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值