您的位置:首页 > 编程语言 > Python开发

使用Python获取Chrome浏览器历史记录

2017-08-31 16:25 495 查看
摘要:近来突发奇想,想知道自己在谷歌浏览器中的访问记录,于是写了个Python小程序来获取。

源代码参考自一位外国小哥的文章,稍作改动!

代码参考如下:

#统计谷歌浏览器访问历史记录
#time@2017-08-30
#author@yooongchun

import os
import sqlite3
import operator
from collections import OrderedDict
import matplotlib.pyplot as plt

def parse(url):
try:
parsed_url_components = url.split('//')
sublevel_split = parsed_url_components[1].split('/', 1)
domain =sublevel_split[0].replace("www.", "")
return domain
except IndexError:
print('URL format error!')

def analyze(results):
prompt =input("[.] Type <c> to print or <p> to plot\n[>] ")

if prompt == "c":
with open('./history.txt','w') as f:
for site, count in sites_count_sorted.items():
f.write(site+'\t'+str(count)+'\n')
elif prompt == "p":
key=[]
value=[]
for k,v in results.items():
key.append(k)
value.append(v)
n=25
X=range(n)
Y=value[:n]
plt.bar(X,Y,align='edge')
plt.xticks(rotation=45)
plt.xticks(X,key[:n])
for x,y in zip(X,Y):
plt.text(x+0.4, y+0.05,y, ha='center', va= 'bottom')
plt.show()
else:
print("[.] Uh?")
quit()

if __name__=='__main__':
#path to user's history database (Chrome)
data_path=r'C:\Users\CNYOZHA22\AppData\Local\Google\Chrome\User Data\Default'
files=os.listdir(data_path)

history_db = os.path.join(data_path, 'history')

#querying the db
c = sqlite3.connect(history_db)
cursor = c.cursor()
select_statement = "SELECT urls.url, urls.visit_count FROM urls, visits WHERE urls.id = visits.url;"
cursor.execute(select_statement)

results = cursor.fetchall() #tuple

sites_count = {} #dict makes iterations easier :D

for url, count in results:
url = parse(url)
if url in sites_count:
sites_count[url] += 1
else:
sites_count[url] = 1

sites_count_sorted = OrderedDict(sorted(sites_count.items(), key=operator.itemgetter(1), reverse=True))

analyze (sites_count_sorted)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: