本文转载自微信公众号「Python技术」,作者派森酱 。转载本文请联系Python技术公众号。
这周末有个小伙伴找到派森酱,说他女票这几天整天都在上网,也不知道浏览什么内容,只要这个小伙伴凑上去瞧瞧就只看见了桌面,查看浏览器历史记录也被删除的一干二净。小伙伴有时候觉得自己头上已经是一片绿,想让派森酱弄个 python 程序找点实锤线索。
小编就花了一点时间写了一个读取浏览器历史的小脚本,并教他如何隐藏小脚本并且使用 windows 自带的任务调度 3 分钟一次自动运行。
browserhistory
browserhistory 是一个可以很方便的获取浏览器历史记录的第三方模块,支持 safari、chrome、firefox 浏览器。
- pip install browserhistory
使用
先来看看 Chrome 浏览器的历史记录存放在磁盘的哪个地方, 在浏览器地址栏输入 chrome://version,如下图可以找到 Chrome 将个人资料存放的地址。
其中 history 文件就是历史记录,它是一个 sqlite 数据库文件,可以使用 DB Browser for SQLite (https://sqlitebrowser.org/dl/) 工具打开并查询数据。
下面三行代码调用 browserhistory 模块获取历史,并保存在了 CSV 文件中。
- import browserhistory as bh
- dict_obj = bh.get_browserhistory()
- bh.write_browserhistory_csv()
统计
用 Excel 看浏览的网站数据并不是很直观,可以使用 pycharts 模块生成饼图查看点击次数最高的前十次网站。
- import csv
- from urllib import parse
- from pyecharts import options as opts
- from pyecharts.charts import Pie
- hostname_dic = {}
- with open("chrome_history.csv", encoding="utf-8") as csvfile:
- csv_reader = csv.reader(csvfile)
- birth_header = next(csv_reader)
- for row in csv_reader:
- hostname = parse.urlparse(row[0]).hostname
- hostname_dic[hostname] = hostname_dic.get(hostname, 0) + 1
- sorted(hostname_dic.items(),key = lambda x:x[1],reverse = True)
- c = (
- Pie()
- .add(
- "",
- [
- list(z)
- for z in zip(
- list(hostname_dic)[0:10],
- list(hostname_dic.values())[0:10],
- )
- ],
- center=["40%", "50%"],
- )
- .set_global_opts(
- title_opts=opts.TitleOpts(title="历史记录"),
- legend_opts=opts.LegendOpts(type_="scroll", pos_left="80%", orient="vertical"),
- )
- .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
- .render("pie_scroll_legend.html")
- )
- print(hostname_dic)
这个是小编的历史记录
最后的最后这个小伙伴的女票一时忘记删除历史记录,让这个小脚本跑成功了,小伙伴也发现自己绿了。
总结
python 在 windows 上是可以干许多事情的,比如监控屏幕发送到 QQ、微信等等,所以小伙伴们千万别三心二意哦。