获取浏览器历史记录并可视化展示

所需要用到的技术

browserhistory:获取浏览器历史记录并做数据处理
Pyecharts:将拿来的数据做可视化分析

 



browserhistory是python的第三方库

安装

pip install browserhistory

 

import browserhistory as bh 
# 所有用到browserhistory的前提是关闭浏览器
dict_obj = bh.get_browserhistory() # 获取浏览器的历史记录
print(dict_obj.keys()) # 获取浏览器信息
print(dict_obj['chrome']) # 获取chrome浏览器的所有历史记录
bh.write_browserhistory_csv() # 将浏览器记录保存到一个csv文件

我们将历史记录保存到一个csv文件,现在做数据处理,如拿到前10名经常使用的历史记录的域名

from collections import Counter
import pandas as pd
from urllib.parse import urlparse
list_weber = []
parser = lambda u: urlparse(u).netloc #取出网址域名
data = pd.read_csv('chrome_history.csv', encoding='utf8', header=None)
for i in data[0]:
    list_weber.append(parser(i))
counter = Counter(list_weber)
counter_limit_ten = counter.most_common(10) # 拿到前10名的域名和次数

拿到分析的数据之后用Pyecharts做可视化展示

pyecharts安装

pip install wheel
pip install pyecharts==0.1.9.4

如下可以自行选择可视化展示方案

columns = []
datas = []
for value in counter_limit_ten:
    # 设置行名
    columns.append(value[0])
    # 设置数据
    datas.append(value[1])


def import_bar():
    '''导入柱状图-Bar'''
    from pyecharts import Bar

    # 设置柱状图的主标题与副标题
    bar = Bar("柱状图", "浏览器历史记录访问量最多前10的网站和访问个数")
    # 添加柱状图的数据及配置项
    bar.add("访问数", columns, datas, mark_line=["average"], mark_point=["max", "min"])
    # bar.add("其他参数", columns, data2, mark_line=["average"], mark_point=["max", "min"]) # 当然还如果还有其他对比数据可以添加其他的
    bar.show_config()
    # 生成本地文件(默认为.html文件)
    bar.render()


def import_pie():
    # 导入饼图Pie
    from pyecharts import Pie
    # 设置主标题与副标题,标题设置居中,设置宽度为900
    pie = Pie("饼状图", "浏览器历史记录访问量最多前10的网站和访问个数", title_pos='center', width=900)
    # 加入数据,设置坐标位置为【2550】,上方的colums选项取消显示
    pie.add("访问数", columns, datas, center=[25, 50], is_legend_show=False, is_label_show=True)
    # 加入数据,设置坐标位置为【7550】,上方的colums选项取消显示,显示label标签
    # pie.add("蒸发量", columns, data2, center=[75, 50], is_legend_show=False, is_label_show=True)
    # 保存图表
    pie.render()


def import_word_cloud():
    # 导入云词图
    from pyecharts import WordCloud
    wordcloud = WordCloud(width=1300, height=620)
    wordcloud.add("", columns, datas, word_size_range=[20, 100], shape='diamond') #词云图的形状可以通过shape参数来选择
    wordcloud.show_config()
    wordcloud.render()
# import_bar()
# import_pie()
# import_word_cloud()
 

 

 

 

 

 

 

 

 

 

 

 

参考:

https://github.com/pyecharts/pyecharts/

https://pyecharts.org/#/zh-cn/chart_api

 

版权声明:本文原创发表于 博客园,作者为 RainBol 本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。 

posted @ 2021-07-21 14:31  RainBol  阅读(711)  评论(0编辑  收藏  举报
Live2D