python怎么抓取别人浏览记录_python获取火狐浏览器的历史记录

python获取火狐浏览器的历史记录

最新在学习python,所以想着做一些练手的项目,这里做一个获取火狐浏览器的历史记录,然后保存到一个txt文件中。这里涉及到的库:

os

sqlite3

time

os库用来搜索文件,sqlite3用来读取sqlite文件,time用来转换时间戳使用。

火狐的历史记录是使用sqlite来保存的,Python内置sqlite3库,所以并不需要安装任何第三方库。

首先是查找火狐浏览器places.sqlite历史记录文件,这里使用了os.walk()函数来查找,但效率较低,先用着吧。

def search(path, name):

searchfiles = []

for root, dirs, files in os.walk(path): #使用os.walk()函数来搜索指定文件,但效率很低

if name in files:

searchfiles.append(os.path.join(root, name))

return searchfiles

然后是使用sqlite3来读取数据:

def gettitles(filename):

conn = sqlite3.connect(filename) #连接sqlite

c = conn.cursor()

print("打开文件:%s 是成功的!" % filename)

cursor = c.execute("Select url,title,visit_count,frecency,last_visit_date from moz_places") #SQL查找表数据

titles = set()

for row in cursor: #遍历行

if row[1]:

lasttime = ""

if row[4]: #如果有时间戳就转换时间

v = int(row[4]) / 1000000

lasttime = time.asctime(time.localtime(v))

titles.add((row[0], row[1],row[2], row[3], lasttime))

conn.close() #关闭文件

return titles

然后就是讲读取到的内容保存到一个文件中,全部代码如下:

import os

import sqlite3

import time

def search(path, name):

searchfiles = []

for root, dirs, files in os.walk(path): #使用os.walk()函数来搜索指定文件,但效率很低

if name in files:

searchfiles.append(os.path.join(root, name))

return searchfiles

def gettitles(filename):

conn = sqlite3.connect(filename) #连接sqlite

c = conn.cursor()

print("打开文件:%s 是成功的!" % filename)

cursor = c.execute("Select url,title,visit_count,frecency,last_visit_date from moz_places") #SQL查找表数据

titles = set()

for row in cursor: #遍历行

if row[1]:

lasttime = ""

if row[4]: #如果有时间戳就转换时间

v = int(row[4]) / 1000000

lasttime = time.asctime(time.localtime(v))

titles.add((row[0], row[1],row[2], row[3], lasttime))

conn.close() #关闭文件

return titles

if __name__ == "__main__":

v = time.time()

systemdrive = os.getenv("SystemDrive") #获取系统盘,查找系统盘下的places.sqlite文件,这是火狐历史记录的文件

searchfiles = search(systemdrive, "places.sqlite")

if len(searchfiles) > 0:

all = []

for filename in searchfiles:

titles = gettitles(filename)

all.append(titles)

if len(all) > 0:

with open("test.txt", "w", encoding= "utf-8") as f: #保存到当前目录下的test.txt文件中吧

count = 0

for item in all:

for it in item:

count +=1

f.write(str(it) + "\n") #加换行

else:

print("未找到文件")

print("共用时:%s秒" % str(time.time() - v))

在我的电脑上共用时45+秒(-v-),吐槽我自己~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值