進群:548377875 即可獲取數十套PDF哦! 工具需求: 輸入:給定公眾號ID,和用戶需要獲取的公眾號文章目錄頁碼數(小於已發佈最大收錄頁數) ( 輸出Ⅰ:每個公眾號歷史文章信息csv文件(鏈接+標題) 輸出Ⅱ: wkhtmltopdf和pdfkit將html轉換成PDF文件或者圖片文件(初稿 ...
進群:548377875 即可獲取數十套PDF哦!
工具需求:
輸入:給定公眾號ID,和用戶需要獲取的公眾號文章目錄頁碼數(小於已發佈最大收錄頁數)
( 輸出Ⅰ:每個公眾號歷史文章信息csv文件(鏈接+標題)
輸出Ⅱ: wkhtmltopdf和pdfkit將html轉換成PDF文件或者圖片文件(初稿)
現有方案
之前在網上也搜索了些爬取微信公眾號的資料,大概有如下幾種
selenium爬取流程
- 安裝python selenium自動模塊,通過selenium中的webdriver驅動瀏覽器獲取Cookie登錄微信公眾號後臺;
- 使用webdriver功能需要安裝對應瀏覽器的驅動插件
- 註意:谷歌瀏覽器版本和chromedriver需要對應,否則會導致啟動時報錯。
- 微信公眾號登陸地址:https://mp.weixin.qq.com/
- 微信公眾號文章介面地址可以在微信公眾號後臺中新建圖文消息,超鏈接功能中獲取:
- 搜索公眾號名稱
- 獲取要爬取的公眾號的fakeid
- 選定要爬取的公眾號,獲取文章介面地址
- 文章列表翻頁及內容獲取
AnyProxy代理批量採集
Fiddler設置代理和抓包
通過對多個賬號進行抓包分析,可以確定:
- _biz:這個14位的字元串是每個公眾號的“id”,搜狗的微信平臺可以獲得
- uin:與訪問者有關,微信號id
- key:和所訪問的公眾號有關
步驟:
1,寫按鍵精靈腳本,在手機上自動點擊公號文章列表頁,也就是“查看歷史消息”;
2,使用fiddler代理劫持手機端的訪問,將網址轉發到本地用php寫的網頁;
3,在php網頁上將接收到的網址備份到資料庫;
4,用python從資料庫取出網址,然後進行正常的爬取。
可能存在的問題:
如果只是想爬取文章內容,似乎並沒有訪問頻率限制,但如果想抓取閱讀數、點贊數,超過一定頻率後,返回就會變為空值。
付費平臺
例如清博 新榜,如果只是想看數據的話,直接看每天的榜單就可以了,還不用花錢,如果需要接入自己的系統的話,他們也提供api介面
3項目步驟
3.1基本原理
目標爬取網站收錄了微信平臺大部分的優質微信公眾號文章,會定期更新,經測試發現對爬蟲較為友好。
1、網站頁面佈局排版規律,不同公眾號通過http://chuansong.me/account/almosthuman2014鏈接中的account區分
2、一個公眾號合集下的文章翻頁也有規律:id號每翻一頁+12
所以流程思路就是
- 獲取預查詢微信公眾號ID(不是直接顯示的名稱,而是信息名片里的ID號,一般由數字字母組成)
- 請求html頁面,判斷是否已經收錄改公眾號
- 如果沒有收錄,則頁面顯示結果為:404該頁面不存在,所以直接使用正則表達式來匹配該提示信息即可
- 正則匹配,找到目標公眾號最大收錄文章頁數
- 解析請求頁面,提取文章鏈接和標題文字
- 保存信息提取的結果
- 調用pdfkit和wkhtmltopdf轉換網頁
3.5自動跳轉頁面
以下代碼通過迴圈遞增賦值,改變url中的頁碼參數
3.8生成的PDF結果
4結果展示
5 完整代碼
由於考慮到轉pdf的穩定性,我在發佈版的代碼中沒有加轉PDF的函數。預留了一個粗糙的py源文件,如果感興趣,讀者可以在此基礎上自行調整修改。
源碼就單獨私信,我一個個給你們發!