手把手用Python網(wǎng)絡爬蟲帶你爬取全國著名高校附近酒店評論
↑?關注 + 星標?,每天學Python新技能
后臺回復【大禮包】送你Python自學大禮包
/1 前言/
??簡介:本文介紹如何用python爬取全國著名高校附近的酒店點評,并進行分析,帶大家看看著名高校附近的酒店怎么樣。
/2 具體實現(xiàn)/
??具體的實現(xiàn)主要是分為三步,具體的操作過程如下。
一、抓取高校附近的酒店信息
??由于電腦客戶端的美團酒店沒有評論信息,于是我從手機端的網(wǎng)頁入手,網(wǎng)頁地址為:https://i.meituan.com/awp/h5/hotel/search/search.html
??通過搜索北京大學附近的酒店,抓包找到了返回酒店json信息的url。

??其中,limit代表返回酒店的最大數(shù)量(經(jīng)測試,limit最大為50),offset為每次返回酒店數(shù)量的起點,cityId為城市的標志,在網(wǎng)頁信息中可以找到,時間參數(shù)可以修改,sort為返回酒店信息的排序,sort=distance代表按距離搜索,q和keyword都是大學名稱。
??返回的數(shù)據(jù)如下圖所示:

????包含酒店的名字、地理位置、評分、realPoiId(相當于酒店的身份證號,后面爬評論用的到)、酒店和大學的距離等信息。
????下面我們開始爬排名前10高校附近的酒店信息(不要在乎大學排名,我亂找的,以學習為主):

(圖片來源于網(wǎng)絡)
??部分代碼如下圖所示:

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

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

??我們可以發(fā)現(xiàn),南京大學附近酒店最多,有453家;上海交通大學閔行校區(qū)附近酒店最少,有75家。
二、抓取每家酒店的點評信息

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

??這個url可以返回酒店的所有評論信息,其中l(wèi)imit為返回的評論數(shù)量,可以直接用上個url返回的評論數(shù)量,一次全部以json格式返回,非常方便,返回結果如下:

三、遇到的坑
? 1.剛開始爬評論是1次返回15個,后來發(fā)現(xiàn)可以Limit可以為評論的最大值,但是第一步返回的酒店信息中包含酒店評論數(shù)量是不準確的,要用第二步的方法;
? 2.評論中亂七八糟的表情、符號也是大坑,去了好久也去不干凈;
? 3.最好用代理IP地址爬,否則評論太多,會被封。
/3?結語/
? 本文基于Python網(wǎng)絡爬蟲,抓取了高校旁邊的酒店數(shù)量及其評論數(shù)量,如果你想抓取其他地方的其他信息,也是可行的,可以縱向拓展。
-------------------?End?-------------------
推薦閱讀
