大學(xué)生都在吃什么——餓了么-松江大學(xué)城周邊外賣信息的數(shù)據(jù)分析

國慶回了一趟松江大學(xué)城,好吃的真是越來越多了溶浴,可惜只有一個胃」芤回來后突然有了靈感,不如分析看看大學(xué)城什么類型的美食最多吧闯两!

為什么選擇餓了么這個平臺呢褥伴,因為當(dāng)年外賣APP還沒有火的時候,我們就是在網(wǎng)頁版的餓了么上叫外賣的漾狼,也算是一種情懷吧~

數(shù)據(jù)來源平臺:餓了么
地點選擇:松江大學(xué)城四期
抓取地址https://www.ele.me/place/wtw0tgvd7yr(翻頁鏈接:https://www.ele.me/restapi/shopping/restaurants?geohash=wtw0tgvd7yr&latitude=31.04641&limit=0&longitude=121.19791&offset=24&terminal=web
抓取數(shù)據(jù):只抓取了店名(name)和店的口味(flavors)

image.png

分析內(nèi)容:1重慢、對店名進行分詞然后詞頻統(tǒng)計繪制詞云圖,因為結(jié)巴分詞對小吃的分詞不是很準(zhǔn)確逊躁,所以在分詞時加入了自己的字典fooddic似踱;
2、對口味進行統(tǒng)計繪制條形圖(偷懶沒有排序)

爬蟲和繪圖代碼:

# -*- coding: utf-8 -*-
"""
Created on Thu Oct 11 09:05:59 2018

@author: Shirley
"""
import requests
import json
import re
import csv
from collections import defaultdict
import jieba
from wordcloud import WordCloud as wd#詞云
from PIL import Image#打開圖片稽煤,用于詞云背景層
import numpy as np#轉(zhuǎn)換圖片核芽,用于詞云背景層
import matplotlib.pyplot as plt#繪圖
from matplotlib.font_manager import FontProperties#中文顯示
font = FontProperties(fname=r"D:\anaconda\shirleylearn\cipintongji\simsun.ttf", size=14)#設(shè)置中文字體

data = []
restaurants = []
foodtype = []
def Getdata(page):#爬蟲

    url = "https://www.ele.me/restapi/shopping/restaurants?geohash=wtw0tgvd7yr&latitude=31.04641&limit=24&longitude=121.19791&offset=%d&terminal=web"%page

    headers = {"accept":"application/json, text/plain, */*",
               "user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36",
               "cookie":"登陸后的cookie"}
    html = requests.get(url,headers=headers)

    content = re.findall(r'"flavors":.*?,"next_business_time"',html.text)#用正則獲取包含數(shù)據(jù)的那部分

    for con in content:
        jsonstring = "{" + con.replace(',"next_business_time"',"}")#完善格式,使其成為準(zhǔn)確的json格式
        jsonobj = json.loads(jsonstring)
        restaurant_id = jsonobj["id"]
        restaurant_name = jsonobj["name"].encode("gbk","ignore").decode("gbk")
        flavors = jsonobj["flavors"]
        restaurant_type = []
        for f in flavors:#有些flavors中只有一個值酵熙,有些有2個轧简,所以要for循環(huán)
            restaurant_type.append(f["name"])
        restaurants.append(restaurant_name)#用于后面詞云圖
        foodtype.append(restaurant_type)#用于后面條形圖
        data.append([restaurant_id,restaurant_name,restaurant_type])
    
    with open("elemedata.csv","w",newline="") as f:#保存數(shù)據(jù)到本地
        writer = csv.writer(f)
        writer.writerow(["restaurant_id","restaurant_name","restaurant_type"])
        for d in data:
            writer.writerow(d)
    
    return restaurants,foodtype#返回值應(yīng)用到下面2個函數(shù)


def Eleme_wordcloud(restaurants):#詞云圖
    jieba.load_userdict("D:/anaconda/shirleylearn/eleme/fooddic.txt")
    text = ""
    for i in restaurants:
        name = re.sub(r'(.*',"",i)
        name = re.sub(r'\(.*',"",name)
    
        text = text + " " + name

    fenci = jieba.lcut(text)

    wordfrequency = defaultdict(int)
    for word in fenci:
        if word != " ":
            wordfrequency[word] += 1#詞頻統(tǒng)計
    
    img = Image.open("D:/anaconda/shirleylearn/eleme/bowl.jpg")#打開圖片
    myimg = np.array(img)#轉(zhuǎn)換圖片

    path = "D:/anaconda/shirleylearn/eleme/simsun.ttf"
    wordcloud = wd(width=1000,height=860,margin=2,font_path=path,background_color="white",max_font_size=100,mask = myimg).fit_words(wordfrequency)#根據(jù)詞頻字典生成詞云
    plt.imshow(wordcloud)
    plt.axis('off')#不顯示坐標(biāo)軸 
    plt.savefig('eleme_wordcloud.png', dpi=300)
    plt.clf()# 清除當(dāng)前 figure 的所有axes,但是不關(guān)閉這個 window匾二,所以能繼續(xù)復(fù)用于其他的 plot哮独。否則會影響下面的繪圖
    
def Eleme_bar(foodtype):#條形圖
    #foodtype的格式:[['蓋澆飯', '簡餐'],['川湘菜', '簡餐'],['日韓料理']]
    wordfrequency2 = defaultdict(int)
    foodtypes = []#放總的類型,有重復(fù)項
    types = []#放詞頻統(tǒng)計后的類型察藐,無重復(fù)項
    numbers = []#放詞頻統(tǒng)計后的詞頻
    for f in foodtype:
        for t in f:
            foodtypes.append(t)#把每個詞匯總到列表中
    for type in foodtypes:
        wordfrequency2[type] += 1#用字典進行詞頻統(tǒng)計
    for key in wordfrequency2:
        types.append(key)
        numbers.append(wordfrequency2[key])
    
    plt.bar(range(len(types)),numbers)
    plt.xticks(range(len(types)),types,fontproperties = font,fontsize=5,rotation=90)
    plt.savefig('eleme_bar.png', dpi=300)
    plt.show()   
    plt.clf()
    
if __name__ == '__main__':
    for p in range(0,24):
        page = p*24
        restaurants,foodtype = Getdata(page)
    Eleme_wordcloud(restaurants)
    Eleme_bar(foodtype)

運行中遇到的問題:運行界面只顯示了條形圖皮璧,沒有顯示詞云圖,不過保存下來的圖是正確的分飞。

詞云圖

eleme_wordcloud.png

看起來在大學(xué)城米飯類要比面食類更受歡迎悴务,粥、香鍋浸须、麻辣燙也是我讀大學(xué)的時候經(jīng)常吃的惨寿。
對于鮮花這個詞,我查看了原始數(shù)據(jù)删窒,確實外送的花店比較多裂垦,但是距離都較遠(yuǎn),實際上大多可以排除在大學(xué)城外肌索。

條形圖

eleme_bar.png

除簡餐外蕉拢,蓋澆飯、地方小吃、米粉面館是三巨頭晕换,甜品午乓、奶茶和炸雞也是大家的心頭好。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末闸准,一起剝皮案震驚了整個濱河市益愈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌夷家,老刑警劉巖蒸其,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異库快,居然都是意外死亡摸袁,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進店門义屏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來靠汁,“玉大人,你說我怎么就攤上這事闽铐〉” “怎么了?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵阳啥,是天一觀的道長添谊。 經(jīng)常有香客問我,道長察迟,這世上最難降的妖魔是什么斩狱? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮扎瓶,結(jié)果婚禮上所踊,老公的妹妹穿的比我還像新娘。我一直安慰自己概荷,他們只是感情好秕岛,可當(dāng)我...
    茶點故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著误证,像睡著了一般继薛。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上愈捅,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天遏考,我揣著相機與錄音,去河邊找鬼蓝谨。 笑死灌具,一個胖子當(dāng)著我的面吹牛青团,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播咖楣,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼督笆,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了诱贿?” 一聲冷哼從身側(cè)響起娃肿,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎珠十,沒想到半個月后咸作,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡宵睦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了墅诡。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片壳嚎。...
    茶點故事閱讀 40,427評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖末早,靈堂內(nèi)的尸體忽然破棺而出烟馅,到底是詐尸還是另有隱情,我是刑警寧澤然磷,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布郑趁,位于F島的核電站,受9級特大地震影響姿搜,放射性物質(zhì)發(fā)生泄漏寡润。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一舅柜、第九天 我趴在偏房一處隱蔽的房頂上張望梭纹。 院中可真熱鬧,春花似錦致份、人聲如沸变抽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽绍载。三九已至,卻和暖如春滔蝉,著一層夾襖步出監(jiān)牢的瞬間击儡,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工锰提, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留曙痘,地道東北人芳悲。 一個月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像边坤,于是被迫代替她去往敵國和親名扛。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,440評論 2 359

推薦閱讀更多精彩內(nèi)容