用Python爬了225座城市6758家餐廳,窺探國人吃小龍蝦的不同姿勢(附代碼)
導(dǎo)讀:世界杯激戰(zhàn)正酣,大家在欣賞精彩比賽的同時,怎能少了美食的陪伴,我們今天就來聊聊世界杯的好麗友——小龍蝦。
01 獲得數(shù)據(jù)
本次數(shù)據(jù)我們爬取了大眾點評中所有打上小龍蝦標(biāo)簽的餐廳:
從上圖中可以看出,我們可以獲得餐廳的人均消費、點評數(shù)量、推薦菜、評分(口味、環(huán)境、服務(wù))等信息,用于我們之后的分析。我們此次總共爬取到了225個城市,6758個餐廳,121.3萬條評論。
我們截取其中的部分核心代碼:
- def find_city_page(path):
- data = pd.read_excel(path)
- city_lobster_page = pd.DataFrame()
- driver = webdriver.Chrome()
- for i in range(0,len(data)):
- try :
- js='window.open("'+data['city_lobster_url'][i]+'")'
- driver.execute_script(js)
- bsObj = BeautifulSoup(driver.page_source,'html.parser')
- bs = bsObj.find_all('a',attrs={'class':'PageLink'})
- this_city_lobster={'city_name':data['city_name'][i],
- 'page_num':max([int(l.text ) for l in bs])}
- city_lobster_page = city_lobster_page.append(this_city_lobster,ignore_index=True)
- except:
- continue
- return
- city_lobster_page
02 城市對比
我們首先要進行分析的是各個城市的小龍蝦熱度,我們以帶有“小龍蝦”標(biāo)簽的餐廳評論總和作為最終的對比依據(jù),得到的TOP20城市如下:
可以看出上海市的點評數(shù)遙遙領(lǐng)先,可能存在以下兩個因素:a.上海市的小龍蝦餐廳數(shù)量較多,本身存在較大的消費群體 b.大眾點評總部在上海,上海的商戶入駐數(shù)量較多。有興趣的朋友可以進行更深一步的研究。
圈定了TOP20城市后,我們首先看一下TOP20城市小龍蝦的人均消費:
該項統(tǒng)計中,包郵區(qū)占據(jù)了靠前的位置,體現(xiàn)出來包郵區(qū)對小龍蝦的熱情和自身的消費水平。同時可以看到株洲的人均消費接近于上海的一半,有機會到湖南旅游的朋友可以考慮到株洲品嘗物美價廉的小龍蝦。
緊接著要看的是TOP20城市味道、環(huán)境、服務(wù)三部分的分?jǐn)?shù)情況:
我們發(fā)現(xiàn)服務(wù)分與環(huán)境分排序相同,二者具有極強的相關(guān)性,符合通常認(rèn)知。同時可以看到在三項分?jǐn)?shù)中,北方的四個城市天津、西安、北京、青島各項指標(biāo)均處于靠前的位置,其中天津的服務(wù)和環(huán)境均處于首位。
結(jié)合下圖全國小龍蝦熱力圖,似乎有些有悖于大家的認(rèn)知。
由此我們可以得出在小龍蝦整體熱度比較強的區(qū)域,人們對于小龍蝦各方面的要求會相應(yīng)提高,相反在整體熱度偏低區(qū)域,人們評價時會相對寬容。同時我們看到海口的各項指標(biāo)均處于最后一位,需要進行相應(yīng)的調(diào)整。
03 探索龍蝦
我們看過了各個城市的情況后,進一步看一下小龍蝦本身的一些有趣的內(nèi)容,首先看一下龍蝦的口味,我們選取了各個餐廳中帶有龍蝦的推薦菜,分詞后獲得TOP20的口味:
十三香、蒜蓉、麻辣高居前三位,根據(jù)作者的經(jīng)驗,這基本上是符合大家整體口味的選擇。TOP20中的蛋黃,白灼對于作者而言相對陌生,有品嘗過的朋友可以分享一些這些口味的體驗。
看完了口味,再看一下龍蝦的好麗友:
螺絲、花甲、毛豆位高居TOP3,看來大家吃龍蝦的時候,會希望同時選擇一些不用摘手套就可以享用的食物,畢竟吃的過程中頻繁摘手套會比較費勁。
04 龍蝦畫像
目前互聯(lián)網(wǎng)公司中非常普遍地會進行一些人群畫像的分析,我們在這里借用一下這個概念,也為小龍蝦繪制一副專屬的畫像:
部分詞云繪制代碼如下:
- # 解析小龍蝦圖片
- back_color = imread('小龍蝦.jpg') # 解析該圖片
- # 參數(shù)配置
- wc = WordCloud(background_color='white', # 背景顏色
- max_words=300, # 最大詞數(shù)
- mask=back_color, # 以該參數(shù)值作圖繪制詞云,這個參數(shù)不為空時,width和height會被忽略
- max_font_size=100, # 顯示字體的最大值
- font_path="C:/Windows/Fonts/simhei.ttf",
- # 解決顯示口字型亂碼問題,可進入C:/Windows/Fonts/目錄更換字體
- random_state=4, # 為每個詞返回一個PIL顏色
- #width=2000, # 圖片的寬
- #height=1860 #圖片的長
- )
- # 通過encounter計數(shù)器生成詞云
- wc.generate_from_frequencies(word_counts)
- # 基于彩色圖像生成相應(yīng)彩色
- image_colors = ImageColorGenerator(back_color)
- # 繪制詞云
- plt.figure()
- plt.imshow(wc.recolor(color_func=image_colors))
- plt.axis('off')
05 特(hei)色(an)龍蝦
文章最后我們放上幾個之前分詞發(fā)現(xiàn)的特色口味龍蝦,或許下一個網(wǎng)紅龍蝦就在其中: