創造不息,交付不止
這個專案是使用打理的方式來抓取微信公眾帳號文章,首先你需要了解現在抓取微信公眾帳號的兩種主流方法,請參考我的文章:
如何優雅的抓取微信公眾號歷史文章
所以現在一般有兩種做法,一種透過搜狗微信,一種透過代理人的方式抓取,這個計畫就是使用代理人的方式抓取。
我本來是寫了更複雜的工具,使用Node.js 的anyproxy 加上php 的Laravel 框架,完成這些功能,但是某天洗澡的時候終於想通了,我其實把一個工具複雜化了,這個工具本來是很簡單的,我給一位媒體朋友指導了一下,他也很快就用起來了。
輸出有兩個東西,一個是wechat.sqlite,一個是wechat.csv,wechat.csv 需要透過指令wechat_spider csv
來產生。
如下是我的公用帳號對應的資料:
表格頭解釋:
accountName: 公众号名称 author: 作者 title: 文章标题 contentUrl: 文章链接 cover: 文章封面图 digest: 文章摘要 idx: 如果是1,代表的是当天第一篇文章,如果是2,代表当天第二篇文章,以此类推。 sourceUrl: 阅读原文对应的链接 createTime: 文章创建时间 readNum: 阅读数 likeNum: 点赞数 rewardNum: 赞赏数 electedCommentNum: 被选择显示的回复数
透過網站https://nodejs.org/zh-cn/ 下載最新版本。
因為裡面依賴sqlite,透過node-gyp 編譯的過程中需要python 2.x (3.x 不行) 以及VCBuild.exe ,所以Windows 的同學一定要安裝一下,否則會出錯。
Windows 使用者透過在具有管理員權限的PowerShell 下輸入npm install --global --production windows-build-tools
下載安裝編譯環境相依性。
Mac 在終端機下,Windows 在cmd 下:
$ npm -v 4.3.0 $ python Python 2.7.6 (default, Nov 18 2013, 15:12:51) [GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.2.79)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>>
如果輸出以上類似的訊息,證明工具已經安裝好了。
$ npm install wechat_spider -g
$ wechat_spider --help Usage: wechat_spider [options] Options: -h, --help output usage information -V, --version output the version number
如果輸出以上類似訊息,證明wechat_spider 已經安裝成功
使用分四步,開啟代理,手機設定代理,查看公眾帳號歷史記錄,接下來就開始自動抓取了,最後產生csv。
第一步:Mac 在終端機下,Windows 在cmd 下開啟工具:
$ wechat_spider
首次需要信任憑證。
預設會開啟憑證的資料夾,如果沒有打開,瀏覽器開啟http://localhost:8002/fetchCrtFile ,也能取得rootCA.crt文件,取得到根憑證後,雙擊,根據作業系統提示,信任rootCA:
Windows
Mac
第二步:使用手機代理:
首次手機需要安裝證書,瀏覽器開啟:http://localhost:8002/qr_root ,使用微信掃描二維碼,[重要] 用瀏覽器開啟:
然後取得到你電腦的IP 位址,假設是192.168.1.5
設定手機代理為電腦:
步驟三:選擇一個微信公眾號,點選查看歷史記錄
第四步:等待出現頁面“一個公眾號採集完成”,就可以產生csv 了
$ wechat_spider csv
我是金馬,一個想搞點事情的程式設計師。如果這個小工具對你有幫助,你可以請我喝杯咖啡,謝謝:)
MIT.