從數據角度解析福州美食

來源於我個人的知乎答案(利用爬蟲技術能做到哪些很酷很有趣很有用的事情? - 小聳的回答)。

作為一個偽吃貨(很想吃但有很多忌口,同時又吃不胖),懷著為福州吃貨服務的理想,我來爬爬餐廳。

源代碼

Talk is cheap, show me the code. 先貼代碼。

GitHub - SmileXie/dianping_crawler: Crawler of dianping.com

用python3來收集數據,用MySQL來保存、分析數據,編碼中用到了幾個Python庫:Requests, Beautifulsoup, MySQL Python connector.。

數據樣本

數據樣本來源於大家熟知的「大眾點評」,收集了其中7740家福州餐廳的數據。

其中,包含以下特徵之一的數據,我認為是無效的數據,予以剔除:

  • 點評星級為0

  • 人均消費大於3000

統計分析

每個統計結果之前,我都會把對應的SQL查詢語句附上,供較真兒的程序員們分析。

福州最貴餐廳TOP20

把所有餐廳按人均消費排序:

mysql> select id, name, branch_name, price, category, district from ResTable order by price desc limit 20;

「福州最貴餐廳」稱號被「和懷石料理」收入囊中,人均消費505元讓我等屌絲望而確步。人均消費400+的餐廳有八家。

TOP20中,日本料理分類佔得最多。左海/西湖公園、五四路商業區、五一廣場是TOP20高端消費餐廳較為聚集的商圈。

比較尷尬的一點是。大眾點評的app中已經有了比較完善的排序功能。在app中已經可以方便地按價格排序得到以上的結果。那感覺……

下面我只好劍走偏鋒,給大家總結一點點評app上篩選不出的數據。

福州餐廳價格分布

假設對福州的餐廳消費按以下規則來分類

考慮到屌絲消費的餐廳,大多數都沒有在大眾點評記錄,或因沒有星級而被當成無效記錄,統計可能失准。因此下面不對小於30元/人 消費水平的餐廳作統計。

mysql> select count(*) from ResTable where price >= 200; mysql> select count(*) from ResTable where price < 200 and price >= 100; mysql> select count(*) from ResTable where price < 100 and price >= 30;

從數量上看,中低消費的餐廳還是佔據大部分。

福州的吃貨商圈

統計資料庫中各商圈的餐廳數量,如下:

mysql> select district, count(*) from ResTable group by district order by count(*) desc limit 30;

以上商圈中,我們剔除掉行政區域的數據(如閩侯縣,馬尾區,其他地區),因為這些區域下的餐廳,通常不屬於任何商圈,於是就被劃分到以行政區域命名的區域中。剔除掉以上數據後,福州各大商圈的餐廳數據排序為:

寶龍萬象果然是最大的吃貨聚集地,老牌商圈東街口排名老二,近幾年新興的商圈倉山萬達和博仕後分列三、四位。

值得注意的是,吃貨商圈top10中,有兩個是位於閩侯縣。也說明閩侯大學城區塊正在逐漸融入市區,有很大的發展潛力。

福州的高富帥商圈

上面統計了各大商圈的餐廳的「量」,以下來統計一下「價」。看看了解一下福州各大商圈中,哪個才是「高富帥」商圈。

mysql> select district, avg(price) from ResTable where district = xxxx and price > 0;

綜合統計上述各大商圈的餐廳的人均消費,如下:

五四路商務區是高端白領聚焦地,一舉奪下福州最「高富帥」商圈稱號。而位於閩侯上街區塊的博仕後與新西客站,雖然在餐廳的「量」上擠入了福州top10商圈,但仍難以擺脫低端印象,在人均消費均價上排名墊底。「學生街」所在的福建師大商圈,聚焦了大量的小吃,人均消費也不會太高。

分店最多的連鎖餐廳

mysql> select name, count(*) from ResTable where price > 20 group by name order by count(*) desc limit 30;

分店最多的餐廳,統計的時候,加上了人均消費價格大於20的限制。因為低消費的餐廳,在大眾點評上沒有完整的登記,統計出來的分店數量也有較大的偏差。

根據上面的統計結果,排名第一的是賣Pizza的瑪格利塔。M記與K記在福州競爭了這麼多年,從餐廳數量上來看,還是M記佔了上風。

「三九」餐廳

所謂三九餐廳,是指口味、服務、環境評分都在9.0(包含9.0)之上的餐廳。

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;

上面是「三九」餐廳,價格按從低到高排序的結果。有五家店的人均消費小於100,便宜未必沒好貨。

後記

再貼一遍源碼: GitHub - SmileXie/dianping_crawler: Crawler of dianping.com

自從老婆看到了那份「福州最貴餐廳TOP20」的榜單後,就立志要把TOP20全吃一遍。不說了,我賺錢去了。。。
推薦閱讀:

福州和閩南的知名度哪個高?
為什麼福州的內河始終治理不好,大部份內河都是又臟又臭?
如何表現得像在福州呆過很久的樣子?
如何評價位於福州長樂地區的濱海新城?
如何評價福州這個城市?

TAG:Python | 爬虫 | 福州 |