今天小編給大家分享一下如何利用Python網路爬蟲抓取微信朋友圈的動態資訊,實際上如果單獨的去爬取朋友圈的話,難度會非常大,因為微信沒有提供向網易雲音樂這樣的API介面,所以很容易找不到門。不過不要慌,小編在網上找到了第三方工具,它可以將朋友圈進行匯出,之後便可以像我們正常爬蟲網頁一樣進行抓取資訊了。
【出書啦】就提供了這樣一種服務,支援朋友圈匯出,並排版生成微信書。本文的主要參考資料來源於這篇博文:www.cnblogs.com/sheng-jie/p… ,感謝大佬提供的介面和思路。具體的教程如下。
一、獲取朋友圈資料入口
1、關注公眾號【出書啦】
![如何利用Python網路爬蟲抓取微信朋友圈的動態(上)](https://i.iter01.com/images/2e2b4d7b0328d6bcea66c2d5b3d7ef490acfdc309f3f855d77e97eecb34680e8.jpg)
2、之後在主頁中點選【創作書籍】-->【微信書】。
![如何利用Python網路爬蟲抓取微信朋友圈的動態(上)](https://i.iter01.com/images/a6cea5e0d572b1e4c688894cf681b22f60bd9354473871e696204457747178a3.jpg)
3、點選【開始製作】-->【新增隨機分配的出書啦小編為好友即可】,長按二維碼之後便可以進行新增好友了。
4、之後耐心等待微信書製作,待完成之後,會收到小編髮送的訊息提醒,如下圖所示。
至此,我們已經將微信朋友圈的資料入口搞定了,並且獲取了外鏈。
確保朋友圈設定為【全部開放】,預設就是全部開放,如果不知道怎麼設定的話,請自行百度吧。
![如何利用Python網路爬蟲抓取微信朋友圈的動態(上)](https://i.iter01.com/images/dd5f98650bccd7619c7154564beef274086d080e28157bf259bb44884524d811.jpg)
5、點選該外鏈,之後進入網頁,需要使用微信掃碼授權登入。
6、掃碼授權之後,就可以進入到微信書網頁版了,如下圖所示。
![如何利用Python網路爬蟲抓取微信朋友圈的動態(上)](https://i.iter01.com/images/3bdc5d9bcc597a7b694f099286d0a2ad70b74a1473e8f9efb54148ee5caf3aca.jpg)
7、接下來我們就可以正常的寫爬蟲程式進行抓取資訊了。在這裡,小編採用的是Scrapy爬蟲框架,Python用的是3版本,整合開發環境用的是Pycharm。下圖是微信書的首頁,圖片是小編自己自定義的。
![如何利用Python網路爬蟲抓取微信朋友圈的動態(上)](https://i.iter01.com/images/7ec871333cdc364d2e2fd554db812e2c3da1ffec79004e0a43a8eddf7fba7bb7.jpg)
二、建立爬蟲專案
1、確保您的電腦上已經安裝好了Scrapy。之後選定一個資料夾,在該資料夾下進入命令列,輸入執行命令:
scrapy startproject weixin_moment
,等待生成Scrapy爬蟲專案。
2、在命令列中輸入cd weixin_moment,進入建立的weixin_moment目錄。之後輸入命令:
scrapy genspider 'moment' 'chushu.la'
,建立朋友圈爬蟲,如下圖所示。
![如何利用Python網路爬蟲抓取微信朋友圈的動態(上)](https://i.iter01.com/images/1df285d8ccb6328c1da946713373ce630bef9c3414292cf5a9810b63a30a2562.jpg)
3、執行以上兩步後的資料夾結構如下:
![如何利用Python網路爬蟲抓取微信朋友圈的動態(上)](https://i.iter01.com/images/ebfebe1d9bcabcc2d842d525e1f8a323bb391cc9801475470ad1ba60c86b20c5.jpg)
三、分析網頁資料
1、進入微信書首頁,按下F12,建議使用谷歌瀏覽器,審查元素,點選“Network”選項卡,然後勾選“Preserve log”,表示儲存日誌,如下圖所示。可以看到主頁的請求方式是get,返回的狀態碼是200,代表請求成功。
![如何利用Python網路爬蟲抓取微信朋友圈的動態(上)](https://i.iter01.com/images/2a4eff30f71149ad3721608eea261f7f75b1094f830f910f5b9fe4894fee23e9.jpg)
2、點選“Response”(伺服器響應),可以看到系統返回的資料是JSON格式的。說明我們之後在程式中需要對JSON格式的資料進行處理。
![如何利用Python網路爬蟲抓取微信朋友圈的動態(上)](https://i.iter01.com/images/3e7ec36e7d1a49e1839db0d1f4d8c8f3fded16c4f41e87ea215e140836c98563.jpg)
3、點選微信書的“導航”視窗,可以看到資料是按月份進行載入的。當點選導航按鈕,其載入對應月份的朋友圈資料。
![如何利用Python網路爬蟲抓取微信朋友圈的動態(上)](https://i.iter01.com/images/77c8ff2afae7da60083ace4b81f12571ae28414712e17aa42c800900eb8a25cb.jpg)
4、當點選【2014/04】月份,之後檢視伺服器響應資料,可以看到頁面上顯示的資料和伺服器的響應是相對應的。
![如何利用Python網路爬蟲抓取微信朋友圈的動態(上)](https://i.iter01.com/images/d5ff373ac28a72b53f97e350377f0ba579d4ab97370ac56d48aa316b1c615bfc.jpg)
5、檢視請求方式,可以看到此時的請求方式變成了POST。細心的夥伴可以看到在點選“下個月”或者其他導航月份的時候,主頁的URL是始終沒有變化的,說明該網頁是動態載入的。之後對比多個網頁請求,我們可以看到在“Request Payload”下邊的資料包引數不斷的發生變化,如下圖所示。
![如何利用Python網路爬蟲抓取微信朋友圈的動態(上)](https://i.iter01.com/images/f35882d9cb50cdd9b53bd8ea817cf2992ea6d14ae96c8254b039ca8c136f7a2f.jpg)
6、展開伺服器響應的資料,將資料放到JSON線上解析器裡,如下圖所示:
![如何利用Python網路爬蟲抓取微信朋友圈的動態(上)](https://i.iter01.com/images/c9be79932a509e9d9add1f900f171e9cb267879abe779836cd12b2787bf4ecf6.jpg)
可以看到朋友圈的資料儲存在paras /data節點下。
至此,網頁分析和資料的來源都已經確定好了,接下來將寫程式,進行資料抓取,敬請期待下篇文章~~