#宝哥教你#离线微信公众号文章[高级版]

上次我写过一篇名为#宝哥教你#自动批量抓取微信文章链接的文章,介绍了如何用js代码实现批量的获取微信公众号的文章链接的。其实没过多久,我写了一个高大上版,但是由于各种私人原因一直没能写文章分享出来。之所以说它是高大上版本,原因有二:

  • 我改用了一种更“高级可靠”的方式实现了消息的发送和链接的提取。大致方法就是利用微信自己的前端js api去调用它的消息请求,从返回的json数据直接提取,而不是原来的模拟点击等待的响应,然后从页面html中提取。
  • 我另写了一个nodejs实现的parser,将抓取到的链接对应的内容进行抓取。相当于将文章对应的html页实现纯离线(即在保证跟原页面完全相同的样式排版的情况下将原文章保存成单个的html文件),而且离线下的文件在手机上也是有比较好的排版体验。

怎么样?高大上吧?下面介绍下如何使用:

准备工作

  • 下载所需要js文件 我把相关的代码跟我的“神奇小脚本”归到一起了,放在osc git上。执行git clone http://git.oschina.net/bobshi/MagicScripts.git将代码下载到本地。
  • 安装nodejs环境 这事儿吧得问谷歌。
  • 下载nodejs文章离线脚本所需模块 js/parser目录下的脚本为将微信文章离线的nodejs脚本。在使用过程中需要引用到三方模块。在该目录下执行npm install下载第三方模块。

使用wx_hacker.js 批量提取文章链接

  • 登录微信 这就不再重复了,可以看文首提到的那篇文章。
  • 注入脚本 这也跟前面那篇文章提到的类似。打开网页控制台,复制wx_hacker.js中的代码在Console中回车执行。
  • 执行链接抓取 在控制台的console中调用wxHacker.grabMessagesOf方法执行你想要的抓取。该方法有两个参数。第一个传递公众号名字(或ID),第二个传一个发送查看文章的指令数组。在wx_hacker.js代码最底部有我写的一段例子代码,该段代码的功能是用来批量抓取鬼脚七的第一季文章的。
  • 链接提取 执行完以上命令后。接下来发生的事跟前面那篇一样。会弹出来一个文本框,命令会一个一个的发送过去。每发送一个命令会收到对应命令对应的文章信息,然后 信息会被提取到弹出的文本框中。等全部指令发送完成,你就可以复制文本框中的信息出来保存成文本文件了。
  • 执行提取 把提取到的信息保存成一个文本文件后。到parser目录,修改myParser.js,主要修改fileName为你保存的文件路径,writeTo为你希望离线后的html文件保存的路径。然后执行node myParse.js.如果没什么大问题就能在你指定的目录看到离线下来的html文件了。

我已经把鬼脚本七四季的文章都离线下来了,已经上传到网盘上了,有需要的可以直接去下。当然你也可以通过以上技术手段方式自己去下载离线。

屏幕截图

  • 执行离线文章脚本

exec parser

  • 离线后的html文件

weixin article list