上一篇網頁爬蟲分析部落格意外在知乎獲得了過千的點贊(有哪些網站用爬蟲爬取能得到很有價值的資料?),堅定了我繼續玩爬蟲的決心。
這次爬點啥好?作為一個偽吃貨(很想吃但有很多忌口,同時又吃不胖),懷著為福州吃貨服務的理想,我決定:這次我來爬爬餐廳。
原始碼
Talk is cheap, show me the code. 依照慣例,先貼程式碼。
https://github.com/SmileXie/dianping_crawler
編碼中用到了幾個Python庫:Requests, Beautifulsoup, MySQL Python connector. 資料庫用到了MySQL。
資料樣本
資料樣本來源於大家熟知的“大眾點評”,收集了其中7740家福州餐廳的資料。
其中,包含以下特徵之一的資料,我認為是無效的資料,予以剔除:
- 點評星級為0
- 人均消費大於3000
統計分析
每個統計結果之前,我都會把對應的SQL查詢語句附上,供較真兒的程式設計師們分析。
福州最貴餐廳TOP20
把所有餐廳按人均消費排序:
1 |
mysql> select id, name, branch_name, price, category, district from ResTable order by price desc limit 20; |
餐廳名 | 分店名 | 人均消費 | 分類 | 商圈 |
---|---|---|---|---|
和懷石料理 | 505 | 日本料理 | 左海/西湖公園 | |
一德鮑魚私房菜 | 489 | 私房菜 | 五四路商務區 | |
安野牧場燒肉專門店 | 二環店 | 459 | 燒烤 | 西禪寺 |
荀懷石料理 | 419 | 日本料理 | 五一廣場 | |
海天盛宴海鮮自助 | 415 | 自助餐 | 五一廣場 | |
聚春園大酒店 | 東街口總店 | 411 | 福州菜/家常菜 | 東街口 |
雍和會海鮮姿造 | 湖東店 | 410 | 海鮮 | 五四路商務區 |
凱賓斯基酒店·雲閣扒房 | 405 | 西餐 | 東二環泰禾 | |
瀾悅海鮮自助餐廳 | 389 | 海鮮 | 五一廣場 | |
鬆月自慢料理 | 376 | 日本料理 | 五四路商務區 | |
王品牛排 | 福州大洋晶典店 | 368 | 西式正餐 | 東街口 |
安野牧場燒肉專門店 | 信和店 | 368 | 燒烤 | 五四路商務區 |
隱家·鍋物專門 | 365 | 日本料理 | 東街口 | |
王品牛排 | 福州泰禾店 | 365 | 西式正餐 | 東二環泰禾 |
國惠大酒店 | 吳航店 | 360 | 福州菜/家常菜 | 長山湖 |
山水大酒店 | 358 | 其他中餐 | 東街口 | |
七號院 | 330 | 快餐簡餐 | 左海/西湖公園 | |
升隆會海鮮旖旎 | 328 | 海鮮 | 臺江萬達 | |
歐斯克生蠔吧 | 萬科廣場 | 303 | 其他西餐 | 寶龍永珍 |
羅源灣世紀金源大飯店 | 餐飲部 | 300 | 自助餐 | 羅源縣其他 |
“福州最貴餐廳”稱號被“和懷石料理”收入囊中,人均消費505元讓我等屌絲望而確步。人均消費400+的餐廳有八家。
TOP20中,日本料理分類佔得最多。左海/西湖公園、五四路商業區、五一廣場是TOP20高階消費餐廳較為聚集的商圈。
比較尷尬的一點是。大眾點評的app中已經有了比較完善的排序功能。在app中已經可以方便地按價格排序得到以上的結果。那感覺……
下面我只好劍走偏鋒,給大家總結一點點評app上篩選不出的資料。
福州餐廳價格分佈
假設對福州的餐廳消費按以下規則來分類
分類 | 人均消費價格區間 |
---|---|
高消費 | >= 200 |
中消費 | >= 100 & |
低消費 | >= 30 & |
屌絲消費 |
考慮到屌絲消費的餐廳,大多數都沒有在大眾點評記錄,或因沒有星級而被當成無效記錄,統計可能失準。因此下面不對小於30元/人 消費水平的餐廳作統計。
1 2 3 |
mysql> select count(*) from ResTable where price >= 200; mysql> select count(*) from ResTable where price = 100; mysql> select count(*) from ResTable where price = 30; |
從數量上看,中低消費的餐廳還是佔據大部分。
福州的吃貨商圈
統計資料庫中各商圈的餐廳數量,如下:
1 |
mysql> select district, count(*) from ResTable group by district order by count(*) desc limit 30; |
商圈 | 餐廳數量 |
---|---|
其他地區 | 563 |
閩侯縣 | 516 |
連江縣其他 | 320 |
馬尾區 | 277 |
平潭縣其他 | 254 |
寶龍永珍 | 242 |
東街口 | 231 |
倉山萬達 | 212 |
晉安區 | 189 |
倉山區 | 185 |
永泰縣其他 | 173 |
中亭街 | 171 |
博仕後 | 171 |
臺江區 | 168 |
福建師大 | 166 |
五四路商務區 | 163 |
新西客站 | 145 |
茶亭世茂 | 140 |
鼓樓區 | 135 |
王莊 | 134 |
鼓山 | 130 |
124 | |
東二環泰禾 | 119 |
左海/西湖公園 | 118 |
榕城廣場 | 115 |
羅源縣其他 | 111 |
五一廣場 | 109 |
鳳城鎮 | 107 |
成龍步行街 | 102 |
潭城鎮 | 98 |
以上商圈中,我們剔除掉行政區域的資料(如閩侯縣,馬尾區,其他地區),因為這些區域下的餐廳,通常不屬於任何商圈,於是就被劃分到以行政區域命名的區域中。剔除掉以上資料後,福州各大商圈的餐廳資料排序為:
商圈 | 餐廳數量 |
---|---|
寶龍永珍 | 242 |
東街口 | 231 |
倉山萬達 | 212 |
博仕後 | 171 |
中亭街 | 171 |
福建師大 | 166 |
五四路商務區 | 163 |
新西客站 | 145 |
茶亭世茂 | 140 |
王莊 | 134 |
寶龍永珍果然是最大的吃貨聚集地,老牌商圈東街口排名老二,近幾年新興的商圈倉山萬達和博仕後分列三、四位。
值得注意的是,吃貨商圈top10中,有兩個是位於閩侯縣。也說明閩侯大學城區塊正在逐漸融入市區,有很大的發展潛力。
福州的高富帥商圈
上面統計了各大商圈的餐廳的“量”,以下來統計一下“價”。看看了解一下福州各大商圈中,哪個才是“高富帥”商圈。
1 |
mysql> select district, avg(price) from ResTable where district = 'xxxx' and price > 0; |
綜合統計上述各大商圈的餐廳的人均消費,如下:
五四路商務區是高階白領聚焦地,一舉奪下福州最“高富帥”商圈稱號。而位於閩侯上街區塊的博仕後與新西客站,雖然在餐廳的“量”上擠入了福州top10商圈,但仍難以擺脫低端印象,在人均消費均價上排名墊底。“學生街”所在的福建師大商圈,聚焦了大量的小吃,人均消費也不會太高。
分店最多的連鎖餐廳
1 |
mysql> select name, count(*) from ResTable where price > 20 group by name order by count(*) desc limit 30; |
餐廳名 | 分店數量 |
---|---|
瑪格利塔 | 40 |
德克士 | 39 |
麥當勞 | 38 |
橋亭活魚小鎮 | 36 |
周麻婆 | 34 |
醉得意 | 33 |
芝根芝底 | 29 |
肯德基 | 24 |
令狐沖窯烤活魚 | 19 |
煌上煌 | 18 |
七恭冒菜 | 18 |
必勝客 | 18 |
蹄膀破店 | 16 |
星巴克 | 15 |
黃鶴樓 | 15 |
廣芳園老香港茶點 | 15 |
大豐收魚莊 | 14 |
重慶雞公煲 | 13 |
天朋手 | 12 |
神龍冒菜 | 11 |
盛世經典牛排 | 10 |
小叫天泡椒活田雞 | 10 |
魚旨壽司 | 10 |
江記海鮮火鍋 | 10 |
佳客來 | 9 |
牛太郎燒烤城 | 9 |
石山水美式餐廳 | 8 |
必來客 | 8 |
人人江記海鮮火鍋 | 8 |
大豐收李家 | 8 |
分店最多的餐廳,統計的時候,加上了人均消費價格大於20的限制。因為低消費的餐廳,在大眾點評上沒有完整的登記,統計出來的分店數量也有較大的偏差。
根據上面的統計結果,排名第一的是賣Pizza的瑪格利塔。M記與K記在福州競爭了這麼多年,從餐廳數量上來看,還是M記佔了上風。
“三九”餐廳
所謂三九餐廳,是指口味、服務、環境評分都在9.0(包含9.0)之上的餐廳。
1 2 |
mysql> select name, branch_name, taste, service, surroundings, price, star from ResTable -> where taste >= 9.0 and service >= 9.0 and surroundings >= 9.0 order by price; |
餐廳 | 分店名 | 口味 | 服務 | 環境 | 人均消費 | 點評星級 |
---|---|---|---|---|---|---|
陶鄉 | 倉山愛琴海東百分店 | 9.1 | 9.1 | 9.2 | 78 | 5.0 |
探魚 | 蘇寧廣場店 | 9.0 | 9.1 | 9.1 | 78 | 5.0 |
百加百炭火烤肉專門店 | 9.1 | 9.0 | 9.1 | 80 | 5.0 | |
陶鄉 | 群升店 | 9.0 | 9.1 | 9.1 | 80 | 5.0 |
重慶高老九火鍋 | 大利嘉城店 | 9.0 | 9.0 | 9.0 | 98 | 5.0 |
味蜀吾老火鍋 | 福州六一路店 | 9.0 | 9.0 | 9.1 | 116 | 4.5 |
攬季鍋物會 | 水調歌頭店 | 9.1 | 9.2 | 9.0 | 127 | 5.0 |
攬季鍋物會 | 樂都匯店 | 9.0 | 9.1 | 9.0 | 143 | 5.0 |
雍和會海鮮姿造 | 三坊七巷店 | 9.1 | 9.1 | 9.1 | 220 | 5.0 |
花潮日料藝食館 | 9.1 | 9.2 | 9.3 | 300 | 5.0 | |
鬆月自慢料理 | 9.1 | 9.0 | 9.3 | 376 | 5.0 | |
雍和會海鮮姿造 | 湖東店 | 9.0 | 9.0 | 9.1 | 410 | 4.5 |
海天盛宴海鮮自助 | 9.0 | 9.1 | 9.1 | 415 | 5.0 |
上面是“三九”餐廳,價格按從低到高排序的結果。有五家店的人均消費小於100,便宜未必沒好貨。
後記
再貼一遍原始碼: https://github.com/SmileXie/dianping_crawler
自從老婆看到了那份“福州最貴餐廳TOP20”的榜單後,就立志要把TOP20全吃一遍。不說了,我賺錢去了。。。