天天看點

如何利用Python網絡爬蟲抓取微信朋友圈的動态(上)

今天小編給大家分享一下如何利用Python網絡爬蟲抓取微信朋友圈的動态資訊,實際上如果單獨的去爬取朋友圈的話,難度會非常大,因為微信沒有提供向網易雲音樂這樣的API接口,是以很容易找不到門。不過不要慌,小編在網上找到了第三方工具,它可以将朋友圈進行導出,之後便可以像我們正常爬蟲網頁一樣進行抓取資訊了。

【出書啦】就提供了這樣一種服務,支援朋友圈導出,并排版生成微信書。本文的主要參考資料來源于這篇博文:

https://www.cnblogs.com/sheng-jie/p/7776495.html

,感謝大佬提供的接口和思路。具體的教程如下。

一、擷取朋友圈資料入口

1、關注公衆号【出書啦】

如何利用Python網絡爬蟲抓取微信朋友圈的動态(上)

2、之後在首頁中點選【創作書籍】-->【微信書】。

如何利用Python網絡爬蟲抓取微信朋友圈的動态(上)

3、點選【開始制作】-->【添加随機配置設定的出書啦小編為好友即可】,長按二維碼之後便可以進行添加好友了。

4、之後耐心等待微信書制作,待完成之後,會收到小編發送的消息提醒,如下圖所示。

至此,我們已經将微信朋友圈的資料入口搞定了,并且擷取了外鍊。

確定朋友圈設定為【全部開放】,預設就是全部開放,如果不知道怎麼設定的話,請自行百度吧。

如何利用Python網絡爬蟲抓取微信朋友圈的動态(上)

5、點選該外鍊,之後進入網頁,需要使用微信掃碼授權登入。

6、掃碼授權之後,就可以進入到微信書網頁版了,如下圖所示。

如何利用Python網絡爬蟲抓取微信朋友圈的動态(上)

7、接下來我們就可以正常的寫爬蟲程式進行抓取資訊了。在這裡,小編采用的是Scrapy爬蟲架構,Python用的是3版本,內建開發環境用的是Pycharm。下圖是微信書的首頁,圖檔是小編自己自定義的。

如何利用Python網絡爬蟲抓取微信朋友圈的動态(上)

二、建立爬蟲項目

1、確定您的電腦上已經安裝好了Scrapy。之後標明一個檔案夾,在該檔案夾下進入指令行,輸入執行指令:

scrapy startproject weixin_moment

,等待生成Scrapy爬蟲項目。

2、在指令行中輸入cd weixin_moment,進入建立的weixin_moment目錄。之後輸入指令:

scrapy genspider 'moment' 'chushu.la'

,建立朋友圈爬蟲,如下圖所示。

如何利用Python網絡爬蟲抓取微信朋友圈的動态(上)

3、執行以上兩步後的檔案夾結構如下:

如何利用Python網絡爬蟲抓取微信朋友圈的動态(上)

三、分析網頁資料

1、進入微信書首頁,按下F12,建議使用谷歌浏覽器,審查元素,點選“Network”頁籤,然後勾選“Preserve log”,表示儲存日志,如下圖所示。可以看到首頁的請求方式是get,傳回的狀态碼是200,代表請求成功。

如何利用Python網絡爬蟲抓取微信朋友圈的動态(上)

2、點選“Response”(伺服器響應),可以看到系統傳回的資料是JSON格式的。說明我們之後在程式中需要對JSON格式的資料進行處理。

如何利用Python網絡爬蟲抓取微信朋友圈的動态(上)

3、點選微信書的“導航”視窗,可以看到資料是按月份進行加載的。當點選導航按鈕,其加載對應月份的朋友圈資料。

如何利用Python網絡爬蟲抓取微信朋友圈的動态(上)

4、當點選【2014/04】月份,之後檢視伺服器響應資料,可以看到頁面上顯示的資料和伺服器的響應是相對應的。

如何利用Python網絡爬蟲抓取微信朋友圈的動态(上)

5、檢視請求方式,可以看到此時的請求方式變成了POST。細心的夥伴可以看到在點選“下個月”或者其他導航月份的時候,首頁的URL是始終沒有變化的,說明該網頁是動态加載的。之後對比多個網頁請求,我們可以看到在“Request Payload”下邊的資料包參數不斷的發生變化,如下圖所示。

如何利用Python網絡爬蟲抓取微信朋友圈的動态(上)

6、展開伺服器響應的資料,将資料放到JSON線上解析器裡,如下圖所示:

如何利用Python網絡爬蟲抓取微信朋友圈的動态(上)

可以看到朋友圈的資料存儲在paras /data節點下。

至此,網頁分析和資料的來源都已經确定好了,接下來将寫程式,進行資料抓取,敬請期待下篇文章~~