python 读取 chrome 历史记录并写入表格

本文介绍了如何使用Python3.7和openpyxl库在Windows10环境下,从SQLite数据库获取用户的历史浏览记录,按最后访问时间排序,并将数据写入新的Excel表格中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当前环境:

Windows10 x64 + Python 3.7 + openpyxl 3.0.9 

import sqlite3
import time
import openpyxl


# 1 获取历史记录
def get_history():
    conn = sqlite3.connect(history)  # 连数据库
    cursor = conn.cursor()  # 获取游标
    cursor = conn.execute("SELECT id,url,title,visit_count,last_visit_time from urls order by last_visit_time desc ")

    rows = []
    for _id, url, title, visit_count, last_visit_time in cursor:
        row = {}
        row['id'] = _id
        row['url'] = url
        row['title'] = title
        row['visit_count'] = visit_count
        row['last_visit_time'] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(
            last_visit_time / 1000000 - 11644473600)) if last_visit_time > 0 else 0
        rows.append(row)
    return rows


# 3 数据写入表格
def func_writeexcel(rows, filepath):
    # 写入数据表格
    workbook_w = openpyxl.load_workbook(filepath)
    worksheet_w = workbook_w.active

    for i in range(len(rows)):
        # 使用 append 方法
        data_single = (
        rows[i]['id'], rows[i]['url'], rows[i]['title'], rows[i]['visit_count'], rows[i]['last_visit_time'])
        worksheet_w.append(data_single)
        #
        '''
        row = worksheet_w.max_row + 1
        k = 1
        worksheet_w.cell(row, k, rows[i]['id'])
        k = k + 1
        worksheet_w.cell(row, k, rows[i]['url'])
        k = k + 1
        worksheet_w.cell(row, k, rows[i]['title'])
        k = k + 1
        worksheet_w.cell(row, k, rows[i]['visit_count'])
        k = k + 1
        worksheet_w.cell(row, k, rows[i]['last_visit_time'])
        '''
    # 保存数据
    workbook_w.save(filepath)


# 2 创建表格
def func_newexcel(filepath):
    try:
        # 创建表格
        workbook_w = openpyxl.Workbook()
        worksheet_w = workbook_w.active
        data = ['id', 'url', 'title', 'visit_count', 'last_visit_time']
        worksheet_w.append(data)
        # 保存
        workbook_w.save(filepath)
    except Exception as e:
        raise e


if __name__ == '__main__':
    # 数据库目录 C:\Users\xx\AppData\Local\Google\Chrome\User Data\Default 下的 History
    history = r'./History'
    # 表格目录
    filepath = r'./history.xlsx'
    # 1 获取历史记录
    rows = []
    rows = get_history()
    # 2 创建表格
    func_newexcel(filepath)
    # 3 数据写入表格
    func_writeexcel(rows, filepath)

其他 SQL 语句:

可以 把 History 直接拖入到 DB Browser for SQLite 这个软件,找到 urls 表,输入以下 sql 语句。

SELECT id, url, title, datetime((last_visit_time/1000000)-11644473600, 'unixepoch', 'localtime') AS last_visit_time FROM urls ORDER BY last_visit_time DESC

参考:
链接:https://juejin.cn/post/7133395183051210788

链接:https://zhuanlan.zhihu.com/p/93662611

链接:https://blog.csdn.net/weixin_45259896/article/details/122820285

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值