📜  在 Ubuntu 中使用Python获取浏览器历史记录

📅  最后修改于: 2022-05-13 01:55:23.809000             🧑  作者: Mango

在 Ubuntu 中使用Python获取浏览器历史记录

为了获取 chrome 和 Mozilla Firefox 浏览器os 模块sqlite3 模块的浏览器历史记录。 Chrome 和 Firefox 历史数据存储在 SQLite 数据库中。因此需要 SQLite Python包来从浏览器历史记录中提取数据。

从 Firefox 获取历史记录

Firefox 浏览器将所有详细信息存储在 .mozilla/firefox 文件夹中。历史文件的扩展名为 .default。要从 firefox 浏览器获取历史记录,请按照以下步骤操作。从终端获取存储浏览器历史记录的默认文件的名称,如下所述

注意:系统中文件存储历史的名称不同,但扩展名保持不变(.default)
例子

Python
import os
import sqlite3
 
 
# Build Data path
data_path = os.path.expanduser('~')+"/.mozilla/firefox/ri27ye3b.default"
history_db = os.path.join(data_path, 'places.sqlite')
 
# Make connection with sqlite3 database
c = sqlite3.connect(history_db)
 
# Create cursor object to execute query
cursor = c.cursor()
select_statement = "select moz_places.url, moz_places.visit_count from moz_places;"
cursor.execute(select_statement)
 
# Fetch the result and Prints the result
results = cursor.fetchall()
 
for url, count in results:
     print(url)
         
# Close the cursor
cursor.close()


Python
import sqlite3
 
con = sqlite3.connect('/home/admin1/.config/google-chrome/Default/History')
c = con.cursor()
 
# Change this to your preferred query
c.execute("select url, title, visit_count, last_visit_time from urls")
results = c.fetchall()
 
for r in results:
    print(r)
     
c.close()


注意:当你执行上面给出的Python代码时,你的浏览器应该关闭。当浏览器打开时,它会获取数据库的锁,因此它不会允许访问Python代码
代码的工作如下所述

  1. 导入 os 模块和 sqlite3 模块。
  2. os.path.expanduser() 方法用于扩展初始路径组件〜或用户主目录的路径。
  3. os.path.join() 方法将一个或多个路径组件与除了最后一个路径组件之外的每个非空部分后面的每个目录分隔符 ('/') 连接起来,以获得最终路径。
  4. sqlite3 的 Connect 方法然后连接数据库。
  5. 一旦连接成功,它就会创建游标对象以访问表
  6. 游标对象的 Execute 方法在 sqlite3 数据库上运行查询,并使用 fetchall 方法获取记录并存储在结果中
  7. for 循环打印从数据库中获取的记录
  8. 当它的任务完成时关闭游标很重要,因为它释放了 sqlite3 数据库上的所有锁。

从 Chrome 获取历史记录

Chrome 浏览器将所有详细信息存储在 .config/google-chrome/Default 文件夹中。这里的历史是存储浏览器历史的数据库的名称。
要从 chrome 浏览器获取历史记录,请按照以下步骤操作
要检查历史数据库的存在,请按照下图中给出的步骤进行操作。

例子

Python

import sqlite3
 
con = sqlite3.connect('/home/admin1/.config/google-chrome/Default/History')
c = con.cursor()
 
# Change this to your preferred query
c.execute("select url, title, visit_count, last_visit_time from urls")
results = c.fetchall()
 
for r in results:
    print(r)
     
c.close()

注意:执行上述Python代码时,应关闭浏览器。当浏览器打开时,它会获取数据库的锁,因此它不会允许访问Python代码
代码的工作如下所述

  1. 导入 sqlite3 模块。
  2. sqlite3 的 Connect 方法然后连接数据库。请注意,路径“home/admin1”根据系统的根路径而有所不同
  3. 一旦连接成功,它就会创建游标对象以访问表
  4. 游标对象的 Execute 方法在 sqlite3 数据库上运行查询,并使用 fetchall 方法获取记录并存储在结果中
  5. for 循环打印从数据库中获取的记录
  6. 完成任务后关闭游标很重要,因为它会释放 sqlite3 数据库上的所有锁。