副问题[/!--empirenews.page--]
在之前的一篇文章100行代码爬取世界全部必胜客餐厅信息,我讲到怎样爬取必胜客长网中世界各多半聚餐厅的信息。固然餐厅数据信息被抓取下来,可是数据一向在硬盘中“躺尸”。未曾记得,本身已经第 n 次这么做了。说到这里,要追溯到本身的大学年华。
本身从大学开始就打仗 Python,其时是本身的好奇心很凶猛。好奇为什么 Python 不必要赏识器就能抓取网站数据。心田叹息到,,这的确是太妙了。本身为了体验这种抓取数据的爱好,以是写了许多的爬虫措施。
跟着本身常识面地拓展,本身相识到数据说明这规模。本身从而才知道爬取到的数据,原本背后还潜匿的一些信息。本身也是在进修这方面的相干常识。这篇文章算是数据说明的童贞稿,首要内容是从数据中提取出必胜客餐厅的一些信息。
01情形搭建
百度前端技能部开源一个基于 Javascript 的数据可视化图表库。其名字为 ECharts。它算是前端数据可视化的利器,能提供直观,活跃,可交互,可本性化定制的数据可视化图表。
海内有个大神突发奇想,这么好用的库假如能和 Python 团结起来就好了。于是乎,pyecharts 库就应运而生。因此,pyecharts 的浸染是用于天生 Echarts 图表的类库。本文中的全部图标,本身都是操作 pyecharts 天生的。
安装该库也很简朴,行使 pip 方法安装。
- pip install pyecharts
02数据洗濯
数据洗濯事变是数据说明必不行少的步调。这一步是为了洗濯一些脏数据。由于也许网站自己就有空数据,可能匹配抓取网站信息时,有些紊乱的数据。这些都必要破除去。
我之前是将数据写到一个 json 文件中,我先将数据读取出来。然后把 json 文本数据转化为字典范例。
- def get_datas():
- """ 从文件中获取数据 """
- file_name = 'results.json'
- with open(file_name, 'r', encoding='UTF-8') as file:
- content = file.read()
- data = json.loads(content, encoding='UTF-8')
- # print(data)
- return data
接着对字典举办遍历, 统计每个都市的餐厅总数。
- def count_restaurants_sum(data):
- """ 对字典举办遍历, 统计每个都市的餐厅总数 """
- results = {}
- for key, value in data.items():
- results[key] = len(value)
- # print(key, len(value))
- return results
再将字典中的每个 key-value 转化为元组,然后按照 value 举办倒序排序。
- restaurants_sum = sorted(restaurants_sum.items(), key=lambda item: item[1], reverse=True)
最后按照表现功效,手动删除一些脏数据。
- def clean_datas(data):
- """
- 破除脏数据。
- 颠末说明发明 ('新区', 189), ('南区', 189), ('向阳', 56) 是脏数据, 必胜客长网的地域选项中就有这三个名字
- [('新区', 189), ('上海市', 189), ('南区', 189), ('北京市', 184), ('深圳', 95),
- ('广州', 86), ('杭州', 78), ('天津市', 69), ('向阳', 56), ('苏州', 54)]
- """
- data.remove(('新区', 189))
- data.remove(('南区', 189))
- data.remove(('向阳', 56))
- return data
到此,数据事变已经完成。
03数据说明
我们已经拿到了颠末洗濯的数据,我们简朴对数据举办打印,然后绘制直方图。
- def render_top10():
- """
- 绘制直方图表现 世界必胜客餐厅总数 Top 10 的都市
- 按照洗濯事后数据的功效, Top 都市如下
- ('上海市', 189), ('北京市', 184), ('深圳', 95), ('广州', 86), ('杭州', 78),
- ('天津市', 69), ('苏州', 54), ('西安', 52), ('武汉', 51), ('成都', 48)
- """
- attr = ["上海", "北京", "深圳", "广州", "杭州", "天津", "苏州", "西安", "武汉", "成都"]
- values = [189, 184, 95, 86, 78, 69, 54, 52, 51, 48]
- bar = Bar("世界各多半会必胜客餐厅数目排行榜")
- bar.add("总数", attr, values, is_stack=True, is_more_utils=True)
- bar.render("render_bar.html")
(编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|