衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何利用Python網絡爬蟲抓取微信朋友圈的動態信息

馬哥Linux運維 ? 來源:未知 ? 作者:李倩 ? 2018-06-27 15:16 ? 次閱讀

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

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

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

一、獲取朋友圈數據入口

1、關注公眾號【出書啦】

2、之后在主頁中點擊【創作書籍】-->【微信書】。

3、點擊【開始制作】-->【添加隨機分配的出書啦小編為好友即可】,長按二維碼之后便可以進行添加好友了。

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

至此,我們已經將微信朋友圈的數據入口搞定了,并且獲取了外鏈。

確保朋友圈設置為【全部開放】,默認就是全部開放,如果不知道怎么設置的話,請自行百度吧。

5、點擊該外鏈,之后進入網頁,需要使用微信掃碼授權登錄。

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

7、接下來我們就可以正常的寫爬蟲程序進行抓取信息了。在這里,小編采用的是Scrapy爬蟲框架,Python用的是3版本,集成開發環境用的是Pycharm。

二、創建爬蟲項目

1、確保您的電腦上已經安裝好了Scrapy。之后選定一個文件夾,在該文件夾下進入命令行,輸入執行命令:

scrapy startproject weixin_moment

,等待生成Scrapy爬蟲項目。

2、在命令行中輸入cd weixin_moment,進入創建的weixin_moment目錄。之后輸入命令:

scrapy genspider 'moment' 'chushu.la'

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

3、執行以上兩步后的文件夾結構如下:

三、分析網頁數據

1、進入微信書首頁,按下F12,建議使用谷歌瀏覽器,審查元素,點擊“Network”選項卡,然后勾選“Preserve log”,表示保存日志,如下圖所示??梢钥吹街黜摰恼埱蠓绞绞莋et,返回的狀態碼是200,代表請求成功。

2、點擊“Response”(服務器響應),可以看到系統返回的數據是JSON格式的。說明我們之后在程序中需要對JSON格式的數據進行處理。

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

4、當點擊【2014/04】月份,之后查看服務器響應數據,可以看到頁面上顯示的數據和服務器的響應是相對應的。

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

6、展開服務器響應的數據,將數據放到JSON在線解析器里,如下圖所示:

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

接下來將寫程序,進行數據抓取。接著往下繼續深入。

四、代碼實現

1、修改Scrapy項目中的items.py文件。我們需要獲取的數據是朋友圈和發布日期,因此在這里定義好日期和動態兩個屬性,如下圖所示。

2、修改實現爬蟲邏輯的主文件moment.py,首先要導入模塊,尤其是要主要將items.py中的WeixinMomentItem類導入進來,這點要特別小心別被遺漏了。之后修改start_requests方法,具體的代碼實現如下圖。

3、修改parse方法,對導航數據包進行解析,代碼實現稍微復雜一些,如下圖所示。

l需要注意的是從網頁中獲取的response是bytes類型,需要顯示的轉為str類型才可以進行解析,否則會報錯。

l在POST請求的限定下,需要構造參數,需要特別注意的是參數中的年、月和索引都需要是字符串類型的,否則服務器會返回400狀態碼,表示請求參數錯誤,導致程序運行的時候報錯。

l在請求參數還需要加入請求頭,尤其是Referer(反盜鏈)務必要加上,否則在重定向的時候找不到網頁入口,導致報錯。

l上述的代碼構造方式并不是唯一的寫法,也可以是其他的。

4、定義parse_moment函數,來抽取朋友圈數據,返回的數據以JSON加載的,用JSON去提取數據,具體的代碼實現如下圖所示。

5、在setting.py文件中將ITEM_PIPELINES取消注釋,表示數據通過該管道進行處理。

6、之后就可以在命令行中進行程序運行了,在命令行中輸入

scrapy crawl moment -o moment.json

,之后可以得到朋友圈的數據,在控制臺上輸出的信息如下圖所示。

7、爾后我們得到一個moment.json文件,里面存儲的是我們朋友圈數據,如下圖所示。

8、嗯,你確實沒有看錯,里邊得到的數據確實讓人看不懂,但是這個并不是亂碼,而是編碼的問題。解決這個問題的方式是將原來的moment.json文件刪除,之后重新在命令行中輸入下面的命令:

scrapy crawl moment -o moment.json -s FEED_EXPORT_ENCODING=utf-8,

此時可以看到編碼問題已經解決了,如下圖所示。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 網絡爬蟲
    +關注

    關注

    1

    文章

    52

    瀏覽量

    8718
  • python
    +關注

    關注

    56

    文章

    4807

    瀏覽量

    85037
  • 微信
    +關注

    關注

    6

    文章

    512

    瀏覽量

    26756

原文標題:如何利用Python網絡爬蟲抓取微信朋友圈的動態

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    單身狗不哭,用段子霸占朋友圈

    `單身狗不哭,用段子霸占朋友圈!情人節,單身狗的劫!整理了網絡上情人節段子提供給廣大單身狗當朋友圈博素材!拿好!不謝!單身狗們是時候改變你單身的命運了,要不然明年你還是一個人,,,
    發表于 02-14 17:59

    Python爬蟲簡介與軟件配置

    Python爬蟲練習一、爬蟲簡介1. 介紹2. 軟件配置二、爬取南陽理工OJ題目三、爬取學校信息通知四、總結五、參考一、爬蟲簡介1. 介紹
    發表于 01-11 06:32

    怎么用RK3288 android去解決朋友圈視頻不能播放的問題呢

    怎么用RK3288 android去解決朋友圈視頻不能播放的問題呢?
    發表于 02-18 06:59

    python網絡爬蟲概述

    網絡爬蟲(Web Spider)又稱網絡蜘蛛、網絡機器人,是一種按照一定的規則,自動地抓取萬維網信息
    發表于 03-21 16:51

    張小龍朋友圈致敬喬布斯,小程序給了安卓手機更多便利

    1 月 9 日,小程序如期上線。 目前,打開小程序共有三種方式:掃描二維碼、好友分享(只能發給好友或群聊,不能發到朋友圈),以及用戶
    發表于 01-09 11:08 ?1010次閱讀

    無人機,AppleWatch和朋友圈竟然是哆啦A夢發明的!

     是誰發明的?——張小龍   那信里面的朋友圈呢?還是張小龍嗎?   絕對不是,而是日本的一個胖子——哆啦A夢。
    發表于 03-10 10:30 ?1972次閱讀

    廣告團隊發布公告 朋友圈廣告@好友評論互動能力全量開放

    廣告團隊發布公告 朋友圈廣告@好友評論互動能力全量開放
    發表于 04-18 15:29 ?1171次閱讀

    華為技術實力得到更多朋友圈的認可

    華為技術實力得到更多朋友圈的認可
    發表于 05-31 10:18 ?1127次閱讀

    新版將支持朋友圈評論使用表情包

    12月23日消息,部分網友投遞線索稱,新版支持在朋友圈評論中使用表情包做回復。
    的頭像 發表于 12-23 15:54 ?2442次閱讀

    朋友圈評論表情包功能已暫停

    朋友圈評論表情包還沒新鮮兩天,就有網友發現,這一功能已經離奇消失。
    的頭像 發表于 12-25 15:42 ?2672次閱讀

    Python爬蟲:使用哪種協議的代理IP最佳?

    網絡大數據要抓取信息,大多需要經過python爬蟲工作,爬蟲能夠幫助我們將頁面的信息
    的頭像 發表于 06-28 16:25 ?1999次閱讀

    Python網絡爬蟲

    Python網絡爬蟲的方法說明。
    發表于 06-01 11:55 ?21次下載

    汽車芯片有多缺貨,廣汽老總親自發朋友圈找ST芯片

    轉發了這條尋芯片的。 缺貨都缺到需要發朋友圈的地步了,汽車芯片到底是有多缺?有媒體采訪了廣汽乘用車的一位高管,他回答,“我們老總已經號召公司上上下下利用各種資源和渠道尋芯片了,我也
    發表于 08-17 17:00 ?2174次閱讀

    python網絡爬蟲概述

    網絡爬蟲(Web Spider)又稱網絡蜘蛛、網絡機器人,是一種按照一定的規則,自動地抓取萬維網信息
    的頭像 發表于 03-21 16:50 ?2093次閱讀

    利用Python編寫簡單網絡爬蟲實例

    利用 Python編寫簡單網絡爬蟲實例2 實驗環境python版本:3.3.5(2.7下報錯
    發表于 02-24 11:05 ?14次下載
    百家乐视频连连看| 24山度数| 百家乐官网注册平台排名| 太阳城假日酒店| 波音百家乐现金网| 百家乐官网游戏机技| 百家乐官网玩法秘诀| 真钱的棋牌游戏网站| 威尼斯人娱乐老牌网站| 网上百家乐怎么赌能赢钱| 百家乐如何稳赢| 百家乐官网官网7scs| 百家乐官网开户送10彩金| 博娱乐城| 元游视频棋牌游戏| 全讯网bbin888.com| 百家乐便利| 线上百家乐网站| 百家乐游戏运营| 娱乐城百家乐官网的玩法技巧和规则 | 皇冠娱乐| 大发888扑克官方下载| 喜来登百家乐的玩法技巧和规则 | 德州百家乐官网扑克桌| 黄金会百家乐官网赌城| 澳门百家乐官网奥秘| 网上百家乐官网作弊不| 真钱博彩网| 博盈开户| 大佬娱乐城怎么样| 亲朋棋牌大厅下载| 大发888游戏平台黄埔| 大发888怎么代充| 威尼斯人娱乐棋牌app| 打百家乐纯打庄的方法| 赌博百家乐技术| 任我赢百家乐自动投注分析系统| 百家乐怎么才赢| 百家乐分析下载| 永利高百家乐开户| 澳门百家乐下注最低|