python爬取《流浪地球》獲十幾萬評論點贊,超給力!

我自己到現在其實還沒看這部電影,畢竟這電影這麼火,電影院現在都很難買到好的位置。所以我打算不如先看看大家是怎麼評價這部電影的,然後就開始寫爬蟲吧。
獲得這 16w 評論資料的過程並沒有那麼順利,對貓眼評論資料介面的分析踩過不少的坑,最終也是參考了網上其他文章得以解決,下面我們一起來分析下。
開啟貓眼 pc 網頁,發現只有 10 條熱門評論資料,果斷將瀏覽器切換成手機模式。果然在手機模式下就可以看到更多評論資訊了,往上滑動終於可以看到介面請求資料了,那麼把介面拿出來看看吧。

#只能獲取1000條資料介面 http://m.maoyan.com/review/v2/comments.json?movieId=248906&userId=-1&offset=15&limit=15&ts=1550381347469&type=3
表面上看好像只需通過 offset 這個引數就能控制翻頁來獲取更多資料了,於是簡單試了幾個引數發現還真可以。
於是開始寫爬蟲程式,寫完執行程式發現 offset 只能到 1000,再往後就沒有資料返回了,因此意味著這個方式只能獲取 1000 條資料。
身為老司機,還是得分享些乾貨精品學習資料的,推薦下小編建立的Python學習交流群556370268,這裡都是一群愛好Python的小夥伴,每天還會直播和大家交流分享經驗哦。
我開始到網上去尋找其他答案,發現有人在用另外一個介面,思路大概是按日期來查詢,然後對每天的資料再做分頁獲取,看上去還不錯,就是下面這個介面。
#每天1000條資料介面 http://m.maoyan.com/mmdb/comments/movie/248906.json?_v_=yes&offset=15&startTime=2019-02-05%2022%3A25%3A03'
這個介面確實可以拿到更多的資料,但是跟上面那個介面一樣,同樣是每天只能獲取 1000 條資料,即從上線到今天最多也只能拿到不到 2w 的資料,這個資料量有點少,看看還有沒有其他辦法。
後來又到網上找到另一個介面,可以通過改變 startTime 欄位的值來獲取更多評論資訊,把 offset 置為 0,把每頁評論資料中最後一次評論時間作為新的 startTime 去重新請求即可。
#靠譜介面 http://m.maoyan.com/mmdb/comments/movie/248906.json?_v_=yes&offset=0&startTime=2019-02-05%2020:28:22
在爬蟲過程中意外的發現,貓眼對介面沒有做反爬限制,一口氣爬了 16w評論資料。資料包含使用者暱稱、使用者所在地、評分、評論內容以及評論時間五項內容。

我簡單看了下資料,90% 都是好評,評分大多數都是滿分,評論中出現很多的不錯、好看、很棒、很好的詞,真是不愧能在短時間內拿下這麼高的票房。