zoukankan      html  css  js  c++  java
  • 获取浏览器历史记录并可视化展示

    所需要用到的技术

    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 本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。 

  • 相关阅读:
    技术分享会之——智能指针
    TeleMCU技术规格
    Golang-interface(一 基本使用)
    关于Mac虚拟机中安装的Windows系统键盘问题
    Android 高速开发系列 打造万能的ListView GridView 适配器
    [Erlang]怎样在Erlang中使用SSL
    Web最新力作有奖试读获奖名单发布
    每天复习Shell—ls
    Mininet系列实验(七):Mininet脚本实现控制交换机行为
    Mininet系列实验(七):Mininet脚本实现控制交换机行为
  • 原文地址:https://www.cnblogs.com/RainBol/p/15039362.html
Copyright © 2011-2022 走看看