手把手用Python網絡爬蟲帶你爬取全國著名高校附近酒店評論

/1 前言/

  簡介:本文介紹如何用python爬取全國著名高校附近的酒店點評,並進行分析,帶大家看看著名高校附近的酒店怎麼樣。


/2 具體實現/

  具體的實現主要是分爲三步,具體的操作過程如下。

一、抓取高校附近的酒店信息

  由於電腦客戶端的美團酒店沒有評論信息,於是我從手機端的網頁入手,網頁地址爲:https://i.meituan.com/awp/h5/hotel/search/search.html

  通過搜索北京大學附近的酒店,抓包找到了返回酒店json信息的url。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1

  其中,limit代表返回酒店的最大數量(經測試,limit最大爲50),offset爲每次返回酒店數量的起點,cityId爲城市的標誌,在網頁信息中可以找到,時間參數可以修改,sort爲返回酒店信息的排序,sort=distance代表按距離搜索,q和keyword都是大學名稱。

  返回的數據如下圖所示:

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1

    包含酒店的名字、地理位置、評分、realPoiId(相當於酒店的身份證號,後面爬評論用的到)、酒店和大學的距離等信息。

    下面我們開始爬排名前10高校附近的酒店信息(不要在乎大學排名,我亂找的,以學習爲主):

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1

(圖片來源於網絡)

  部分代碼如下圖所示:

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1

  其中cityId和大學名字爲控制變量,通過返回的距離信息將酒店位置控制在2000米以內,輸出結果爲:

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1

  看看這10所大學2000米附近附近有多少家酒店:

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1

  我們可以發現,南京大學附近酒店最多,有453家;上海交通大學閔行校區附近酒店最少,有75家。


二、抓取每家酒店的點評信息

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1

  這個從這個url可以返回每家酒店的評論數量,poiId是酒店的“身份證號”。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1

  這個url可以返回酒店的所有評論信息,其中limit爲返回的評論數量,可以直接用上個url返回的評論數量,一次全部以json格式返回,非常方便,返回結果如下:

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1


三、遇到的坑

  1.剛開始爬評論是1次返回15個,後來發現可以Limit可以爲評論的最大值,但是第一步返回的酒店信息中包含酒店評論數量是不準確的,要用第二步的方法;

  2.評論中亂七八糟的表情、符號也是大坑,去了好久也去不乾淨;

  3.最好用代理IP地址爬,否則評論太多,會被封。


/3 結語/

  本文基於Python網絡爬蟲,抓取了高校旁邊的酒店數量及其評論數量,如果你想抓取其他地方的其他信息,也是可行的,可以縱向拓展。

  歡迎大家嘗試,消耗在家的無聊時間本文涉及的代碼都上傳到了github地址上,後臺回覆“高校酒店”四個字即可獲取代碼



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章