python实战练手项目---获取谷歌浏览器的历史记录,分析一个人的上网行为

谷歌浏览器的历史浏览记录存储在名为History sqlite文件中,在mac环境下,该文件的地址是

/Users/zhangdongsheng/Library/Application Support/Google/Chrome/Default/History

注意替换用户名(zhangdongsheng)

如果是windows系统,文件的目录为

%LocalAppData%\Google\Chrome\User Data\Default

历史浏览记录存储在urls表里,这里只关注last_visit_time和url字段,前者是访问时间,后者是网址。last_visit_time字段存储的是时间是距离1601年1月1日0时0分0秒的微秒数,在windows系统下,FILETIME是从1601-01-01开始计时的,而在unix,linux系统下,则是从1970-01-01开始计时的。

有了数据库和表,就可以直接从数据库文件里读取数据了,读取数据时,一定要把谷歌浏览器关掉,不然它会一直锁着History文件,导致程序无法读取,下面的程序读取19年5月1日之后浏览记录

import sqlite3

from urllib.parse import urlparse

import matplotlib.pyplot as plt

from matplotlib.font_manager import FontProperties

db_path = '/Users/zhangdongsheng/Library/Application Support/Google/Chrome/Default/History'

conn = sqlite3.connect(db_path)

sql = '''

select url from urls where

datetime(last_visit_time/1000000-11644473600,'unixepoch')

> '2019-05-01'

'''

cursor = conn.execute(sql)

得到的url内容如下

https://www.cnblogs.com/zzqcn/p/3525636.html

还需要对url进行解析,提取出网址的域名,并对域名访问次数进行数量统计

# 解析url,获得域名

parser = lambda u: urlparse(u).netloc

history_dict = {}

for row in cursor:

print(row[0])

url = parser(row[0])

history_dict.setdefault(url, 0)

history_dict[url] += 1

接下来就是可视化呈现的部分了,获取访问频次前20的域名信息并使用matplotlib画出饼图

history_lst = [(url, count) for url, count in history_dict.items()]

history_lst.sort(key=lambda item: item[1], reverse=True)

# 设置font,支持中文

font = FontProperties(fname='/System/Library/Fonts/STHeiti Medium.ttc')

top_20_url = history_lst[:20]

# 获得饼状图数据

pie_data = [item[1] for item in top_20_url]

# 获得label

pie_labels = [item[0] for item in top_20_url]

plt.figure(1, figsize=(10, 10))

plt.title('访问频率排名前20的网站', fontproperties=font)

plt.pie(pie_data, autopct='%1.1f%%', labels=pie_labels)

plt.savefig('./浏览频率前20的网站.jpg')

生成的图片

python上网行为分析_python实战练手项目---获取谷歌浏览器的历史记录,分析一个人的上网行为...相关推荐

  1. python画画需要什么模块_python实战练手项目---使用turtle模块画奥运五环

    python实战练手项目---使用turtle模块画奥运五环 2020年将举办东京奥运会,本篇实践文章将带你使用turtle模块画一个五环图,先来看效果图 1. 定义一个类继承Turtle class ...

  2. python做些什么项目_Python 的练手项目有哪些值得推荐

    1 Web方向的练手项目 这个其实是肯定不用多少的了.Python的练手项目就是可以做一个网站了.我们可以做一个属于自己的博客.在做博客的时候,我们可以巩固的知识点是 Html+CSS+JS的基础知识 ...

  3. python3实战练手项目_Python0基础练手项目有哪些值得推荐?附实战项目+学习图谱...

    原标题:Python 0基础练手项目,有哪些值得推荐?附实战项目+学习图谱 刚学Python的时候,因为豆瓣帖子老沉,就写了一个顶帖脚本.就是用这个脚本,给自己的帖子顶了两年,在小组里追到了现在的女朋 ...

  4. 10个有趣的Python教程,附视频讲解+练手项目。

    从前的日色变得慢,车.马.邮件都慢 一生只够爱一门编程语言 从前的教程也好看,画面精美有样子 你看了,立马就懂了 Python最性感的地方,就在于它的趣味性和前沿性,学习Python,你总能像科技节的 ...

  5. 100个Python实战练手项目(附源码+素材),学习必备

    前言: 不管学习哪门语言都希望能做出实际的东西来,这个实际的东西当然就是项目啦,不用多说大家都知道学编程语言一定要做项目才行. 这里整理了最新32个Python实战项目列表,都有完整且详细的视频教程和 ...

  6. python练手_Python数据分析练手项目

    最近,我在阿里天池大数据竞赛中发现了一些练手的项目,例如,用Python"画月饼过云上中秋",虽然中秋已经过去了,但还是好奇Python是怎么画出月饼的? 先上图↓ 火龙果馅的月饼 ...

  7. 人工智能实战项目(python)+多领域实战练手项目

    人工智能实战项目 大家好,我是微学AI,本项目将围绕人工智能实战项目进行展开,紧密贴近生活,实战项目设计多个领域包括:金融.教育.医疗.地理.生物.人文.自然语言处理等:帮助各位读者结合机器学习与深度 ...

  8. 2022最新python100个实战练手项目,【附源码】,快来学习起来吧!

    Python是目前最好的编程语言之一.由于其可读性和对初学者的友好性,已被广泛使用.那么要想学会并掌握Python,可以实战的练习项目是必不可少的. 接下来,我将给大家介绍20个非常实用的Python ...

  9. 分享几个接口自动化的实战练手项目

    Hi,大家好. 最近一直比较忙,难得昨天有空,特意抽时间打开公众号后台,回复一下朋友们的留言.自进入四月以来,后台收到了近百条 点工转自动化 & 跳槽涨薪面试 方面问题的留言,很多人想趁春招旺 ...

最新文章

  1. 正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码......
  2. 反汇编算法介绍和应用——线性扫描算法分析
  3. 【数论基础】有关素数的基础算法(内含三种筛法,低至O(N^(2/3))!)
  4. Spring中的异步任务
  5. 企业架构-发布【企业架构框架-TOGAF v0.1.pdf】
  6. python入门有基础-Python入门必须知道的11个知识点
  7. java--Hibernate添加数据save
  8. filter函数的用法_这几个超牛函数,你的Excel里有没有?
  9. 微型计算机广告牌实验报告,微型计算机实验报告1资料.doc
  10. python包和目录有什么不同_python模块和包的区别
  11. 草稿-乱-爬虫-post请求数据与Request Payload
  12. php-php连接数据库
  13. C++ Primer Plus 读书笔记(第4、5章)
  14. Java SE之正则表达式二:匹配
  15. HTML5:web socket 和 web worker
  16. android 电话状态的监听(来电和去电)
  17. python 2.7安装pandas失败
  18. 地摊经济一千年:从《韩熙载夜宴图》到木屋烧烤“撸串”
  19. 给小朋友讲故事——科学课,地球,太阳和月亮
  20. 安卓开发学习——第四天

热门文章

  1. 【连载】如何掌握openGauss数据库核心技术?秘诀五:拿捏数据库安全(4)
  2. 第十届数据技术嘉年华活动彩蛋!
  3. 国庆佳节,我们有好礼相送!
  4. 【华为云技术分享】如何处理暗数据?
  5. 通过kubeadm安装kubernetes 1.13.2
  6. 地理必修一三大类岩石_高中地理 | 必备基础知识点干货
  7. 使用CLion配置第一个FLTK界面
  8. selenium自动化案例(一)B站专栏爬虫
  9. 使用Github Pages和Hexo搭建自己的独立博客【超级详细的小白教程】
  10. mongodb$pull数组更新操作符