分享一个使用“代理”的方式抓取微信公众账号文章,可以抓阅读数,点赞数,赞赏数和回复数,使用 anyproxy

2017-04-05 21:02:03 +08:00
 lijinma

首先,先看我写的文章,介绍现在微信公众账号可以抓取的方法:

如何优雅的抓取微信公众号历史文章

这个工具是纯 node.js 代码,使用 anyproxy 做代理来抓取文章的。

安装:

$ npm install wechat_spider -g

具体安装和使用请查看 https://github.com/lijinma/wechat_spider

抓取完存储在 sqlite 中,可以导出 csv ,如图:

抓取思路:

  1. 使用中间人攻击的方式,安装根证书。
  2. 为了保证自动抓取分页,在每一页的后面添加:<script>setTimeout(function(){window.location.href="下一个 url";},2000);</script>,动态修改下一个 url ,这样就可以保证一直抓下去。

这是一个完整的工具

我尽可能的在 README 中尽可能的把每一步都写得非常清楚,希望真的可以对你有用,尤其是媒体工作者,因为我这个工具就是为我一个做媒体的朋友写的,有任何问题,请提 Issue 。

我的公众账号

11655 次点击
所在节点    Node.js
54 条回复
lijinma
2017-04-05 21:36:02 +08:00
- 。- 没人理,睡觉去了
anexplore
2017-04-05 23:17:03 +08:00
知乎上看过一样思路的文章 github 上有实现
mingyun
2017-04-05 23:26:31 +08:00
安装失败了,不支持 py3
gyp ERR! configure error
gyp ERR! stack Error: Python executable "d:\python3\python.EXE" is v3.5.2, which
is not supported by gyp.
gyp ERR! stack You can pass the --python switch to point to Python >= v2.5.0 & <
3.0.0.
qiayue
2017-04-05 23:42:37 +08:00
@lijinma 做得挺好的,学习了
sumuu
2017-04-06 01:03:59 +08:00
昨天也刚好做了一个抓取微信公众号的历史记录,不过实现方式有差异.

直接分析 Windows 客户端,模拟请求抓取的.
lijinma
2017-04-06 05:46:32 +08:00
@anexplore 嗯哪,我看到过 go 语言实现的。思路是一样的。
lijinma
2017-04-06 05:47:25 +08:00
@mingyun ……哎,不开心,安装 sqlite 的时候需要 python2.*,我得赶紧改一下文档,谢谢你反馈。
WildCat
2017-04-06 06:30:23 +08:00
@lijinma 大神能否发下 golang 实现的?
mooncakejs
2017-04-06 07:21:24 +08:00
这个还是麻烦了, xposed 去 WebView 注入一个 js 文件,可以随便怎么玩。
lijinma
2017-04-06 09:35:27 +08:00
lijinma
2017-04-06 09:39:42 +08:00
@sumuu 嘿嘿,我这个工具,用 Windows 客户端 Mac 客户端都可以用,但是客户端是拿不到阅读数和点赞数的吧。列表都可以拿到。
lijinma
2017-04-06 09:40:09 +08:00
@mooncakejs 确实,但是一般人都可以玩玩, xposed 高端玩家可以玩。
fhefh
2017-04-06 09:50:04 +08:00
谢谢楼主分享
lijinma
2017-04-06 10:15:11 +08:00
@fhefh 客气~
yangxiongguo
2017-04-06 10:19:10 +08:00
感谢分享
falseen
2017-04-06 10:19:37 +08:00
其实不一定要用代理的,仔细观察可以发现,出现验证码之后只要清空缓存或是用隐身模式就可以不用输验证码。它的实现原理是在出现验证码的时候检测 cookie ,如果是初次打开,则利用 js 做一系列的运算,最终得到一个免验证码的 cookie 。

我们可以利用这一点来绕过验证码。我曾经帮别人做过一个批量获取公众号文章的工具,就是利用这个方法实现的免验证码。我回头看一下有没有失效,如果没的话就把它放出来。
lijinma
2017-04-06 10:48:16 +08:00
@falseen 恩恩,你说的是搜狗微信抓文章的,主要搜狗微信历史记录不全,而且 web 抓 不到点赞数和阅读数。才迫不得已使用代理的方式。
falseen
2017-04-06 11:30:54 +08:00
@lijinma 哦,我看错了。我还以为使用代理是为了绕过验证码呢~不好意思。你这个思路挺有意思的,赞一个!不过我有一个疑问,是不是每个公众号都要手动操作客户端 ?还是只要操作一次,之后就可以自动跳转了 ?
lijinma
2017-04-06 11:43:56 +08:00
@falseen 可以的,但是我这个工具是没这么做的,我另外一个工具是这么做的,先采集好所有的公众号的 biz 参数,然后开始抓取,抓取完一个跳到另外一个账号的历史记录。

但是我这个工具就是想弄的简单点,大家直接可以完,然后看我的代码自己改改就可以随便抓了。

谢谢你的回复。
MrFireAwayH
2017-04-06 11:58:43 +08:00
Win10 没法安装……显示没有 8.1 SDK 尝试了一些方案……还是没能解决😪😪😪

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/352758

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX