投稿    登录
  《Python3网络爬虫开发实战》赠书活动正在进行中!详情请戳赠书活动!欢迎参与!非常感谢!

mitmdump + 电脑版微信爬取微信公众号文章

Python Crazy__Hope 5940浏览 503评论

本篇文章使用到的技术: mitmdump + 电脑版微信

需求

首先来说下需求,需求很简单(-_-!!), 就是爬指定微信公众号的所有文章并保存为pdf。
看到这个需求的时候正好我用电脑登陆着微信,就想着先用电脑抓一下包看可不可行(能少用工具就少用,减少运行依赖),后来发现果然有数据返回。(有搞头!)

步骤

下面说下具体分析步骤:

1.打开可视化抓包工具, 勾选https代理。然后打开电脑版微信

在这里插入图片描述

2.任意点击一个公众号,再点击查看历史消息

在这里插入图片描述

打开后这样

在这里插入图片描述

3. 向下滑动右侧的滚动条,同时观察抓包软件,有新的数据加载即可停止滑动,仔细分析抓包软件的数据

在这里插入图片描述

呐,接口已经找到了。

4.下面来分析它的请求参数

在这里插入图片描述

由于上面这些参数根本就不知道是怎么生成的,所以就考虑使用mitmdump配合,那现在的关键点由怎么破解这些参数来到了 如何构造下一次请求。通过多下滑几次发现,其它参数都是固定不变的,只是 offset这个关键参数来控制它的翻页。通过观察响应

在这里插入图片描述

可以找到 next_offset 这个参数就是下一次请求的 offset参数。那如何知道它已经翻到底了,没有更多内容了呢? 你可以控制滑轮一直下滑,观察最后一个接口的响应体内容,就会发现 can_msg_continue=0 如果可以翻页的话,这个参数的值为1。

5.分析完毕我们就可以编写抓包的脚本了

在这里插入图片描述

这样就可以获取首次打开公众号的参数(注意: 这些参数就仅对这一个公众号有用,等控制台打印 爬取完毕,再去点击另外一个公众号)。 然后交给parse去解析下载

大体代码就这样了,可以获取到标题和里面的内容了,最后我使用的pdfkit这个包 保存为pdf。

这里给大家说下这里面的坑,不知道大家发现没有,开启了mitmdump 是不能抓到 自身电脑的http请求包的,而Fiddler和Charles就可以直接抓到。 mitmdump需要设置代理,具体设置步骤如下:

在这里插入图片描述

然后大家肯定发现我的parse函数里为什么有一行设置代理的参数,而http和https的代理全为None

在这里插入图片描述

如果不加上他,它就会走代理,而且报一个 无法连接到代理的错误。具体错误,大家可以尝试一下。除非关闭刚才设置的代理,那如果关闭了, mitmdump就又抓不到电脑的请求包了。。。。所以这里要这样设置。其实还有种方法,下面把这两种代码都贴上

在这里插入图片描述

至于说保存为pdf,里面的还有一堆坑,比如保存的文章pdf没有图片等等问
题,这里就不在赘述了!
到这里就结束了。要爬取哪个公众号,只需要点一点公众号列表的公众号即可!
存在的缺点: 如果要爬取的公众号很多,这种方法可能不太适用!

转载请注明:静觅 » mitmdump + 电脑版微信爬取微信公众号文章

喜欢 (11)or分享 (0)

我的个人微信公众号,联系我请直接在公众号留言即可~

扫码或搜索:进击的Coder

进击的Coder

微信公众号 扫一扫关注

想结交更多的朋友吗?

来进击的Coder瞧瞧吧

进击的Coder

QQ群号 99350970 立即加入

进击的Coder灌水太多?

这里是纯粹的技术领地

激进的Coder

QQ群号 627725766 立即加入

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请狠狠点击下面的

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(503)个小伙伴在吐槽
  1. is overdose 200mg
    RannevNiz2019-02-11 06:05 回复
  2. is online rosario
    RannevNiz2019-02-11 04:25 回复
  3. viagra sicher online kaufen
    RannevNiz2019-02-11 03:40 回复
  4. natural is alternatives
    RannevNiz2019-02-11 02:49 回复
  5. viagra svizzera prezzo
    RannevNiz2019-02-11 02:33 回复
  6. viagra herbal for men
    RannevNiz2019-02-11 01:50 回复
  7. viagraprobeprobe paypal
    RannevNiz2019-02-11 00:49 回复
  8. buy viagra japan
    RannevNiz2019-02-11 00:27 回复
  9. try it real viagra
    RannevNiz2019-02-10 23:49 回复
  10. levitra 20 mg o is
    RannevNiz2019-02-10 22:55 回复
  11. generisches online is
    RannevNiz2019-02-10 22:33 回复
  12. buy viagra manhattan
    RannevNiz2019-02-10 21:51 回复
  13. is how to use it
    RannevNiz2019-02-10 21:23 回复
  14. viagra and price
    RannevNiz2019-02-10 19:30 回复
  15. sirve es y que viagra que para
    RannevNiz2019-02-10 18:36 回复
1 29 30 31 32 33 34