社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python爬虫&可视化-舌尖上的“小龙虾”

程序人生 • 7 年前 • 447 次点击  

点击上方“程序人生”,选择“置顶公众号”

第一时间关注程序猿(媛)身边的故事


作者

数据森麟

如需转载,请联系原作者授权。


前言:

上期与大家分享了一些旅游的内容,本期则分享一些为吃货量身定制的文章,大家的好丽友——小龙虾


PART1:获得数据

本次数据我们爬取了大众点评中所有打上小龙虾标签的餐厅


从上图中可以看出,我们可以获得餐厅的人均消费、点评数量、推荐菜、评分(口味、环境、服务)等信息,用于我们之后的分析。我们此次总共爬取到了225个城市,6758个餐厅,121.3万条评论。


我们截取其中的部分核心代码:

  1. def find_city_page(path):

  2.    data = pd.read_excel(path)

  3.    city_lobster_page = pd.DataFrame()

  4.    driver = webdriver.Chrome()    

  5.    for i in range(0,len(data)):

  6.        try:

  7.            js='window.open("'+data['city_lobster_url'][i]+'")'

  8.            driver.execute_script(js)

  9.            bsObj = BeautifulSoup(driver.page_source,'html.parser')

  10.            bs = bsObj.find_all('a',attrs={'class':'PageLink'})

  11.            this_city_lobster={'city_name':data['city_name'][i],

  12.                               'page_num':max([int(l.text ) for l in bs])}

  13.            city_lobster_page = city_lobster_page.append(this_city_lobster,ignore_index=True)

  14.        except:

  15.            continue

  16.    return city_lobster_page

PART2: 城市对比

我们首先要进行分析的是各个城市的小龙虾热度,我们以带有“小龙虾”标签的餐厅评论总和作为最终的对比依据,得到的TOP20城市如下:

可以看出上海市的点评数遥遥领先,可能存在以下两个因素:a.上海市的小龙虾餐厅数量较多,本身存在较大的消费群体 b.大众点评总部在上海,上海的商户入驻数量较多。有兴趣的朋友可以进行更深一步的研究。


圈定了TOP20城市后,我们首先看一下TOP20城市小龙虾的人均消费

该项统计中,包邮区占据了靠前的位置,体现出来包邮区对小龙虾的热情和自身的消费水平。同时可以看到株洲的人均消费接近于上海的一半,有机会到湖南旅游的朋友可以考虑到株洲品尝物美价廉的小龙虾。


紧接着要看的是TOP20城市味道、环境、服务三部分的分数情况:

我们发现服务分与环境分排序相同,二者具有极强的相关性,符合通常认知。同时可以看到在三项分数中,北方的四个城市天津、西安、北京、青岛各项指标均处于靠前的位置,其中天津的服务和环境均处于首位。


结合下图全国小龙虾热力图,似乎有些有悖于大家的认知。

由此我们可以得出在小龙虾整体热度比较强的区域,人们对于小龙虾各方面的要求会相应提高,相反在整体热度偏低区域,人们评价时会相对宽容。同时我们看到海口的各项指标均处于最后一位,需要进行相应的调整。


PART3: 探索龙虾

我们看过了各个城市的情况后,进一步看一下小龙虾本身的一些有趣的内容,首先看一下龙虾的口味,我们选取了各个餐厅中带有龙虾的推荐菜,分词后获得TOP20的口味

十三香、蒜蓉、麻辣高居前三位,根据作者的经验,这基本上是符合大家整体口味的选择。TOP20中的蛋黄,白灼对于作者而言相对陌生,有品尝过的朋友可以分享一些这些口味的体验。


看完了口味,再看一下龙虾的好丽友

部分词云绘制代码如下:

  1. # 解析小龙虾图片

  2. back_color = imread('小龙虾.jpg')  # 解析该图片

  3. # 参数配置

  4. wc = WordCloud(background_color='white',  # 背景颜色

  5.               max_words=300,  # 最大词数

  6.               mask=back_color,  # 以该参数值作图绘制词云,这个参数不为空时,width和height会被忽略

  7.               max_font_size=100,  # 显示字体的最大值

  8.               font_path="C:/Windows/Fonts/simhei.ttf",  # 解决显示口字型乱码问题,可进入C:/Windows/Fonts/目录更换字体

  9.               random_state=4,  # 为每个词返回一个PIL颜色

  10.               #width=2000,  # 图片的宽

  11.               #height=1860  #图片的长

  12.               )

  13. # 通过encounter计数器生成词云

  14. wc.generate_from_frequencies(word_counts)

  15. # 基于彩色图像生成相应彩色

  16. image_colors = ImageColorGenerator(back_color)

  17. # 绘制词云

  18. plt.figure()

  19. plt.imshow(wc.recolor(color_func=image_colors))

  20. plt.axis('off')

PART5: 特(hei)色(an)龙虾

文章最后我们放上几个之前分词发现的特色口味龙虾,或许下一个网红龙虾就在其中

如果大家周围有对数据分析&数据挖掘感兴趣的朋友,可以直接在公众号或者文章下方留言


- The End -

「若你有原创文章想与大家分享,欢迎投稿。」

加编辑微信ID,备注#投稿#:

程序 丨 druidlost  

小七 丨 duoshangshuang

上期精彩内容


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/CVXtya7p0l
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/22708
 
447 次点击