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-),吐槽我自己~~~

原文地址:https://www.cnblogs.com/zzr-stdio/p/12404920.html

时间: 2024-08-13 20:59:03

python获取火狐浏览器的历史记录的相关文章

用 Python 获取 B 站播放历史记录

用 Python 获取 B 站播放历史记录 最近 B 站出了一个年度报告,统计用户一年当中在 B 站上观看视频的总时长和总个数.过去一年我居然在 B 站上看了2600+个视频,总计251个小时,居然花了这么多时间,吓得我差点把 Bilibili App 卸载了... 然而我又很好奇,到底我在 B 站上都看了些什么类型小姐姐的视频,用几行 Python 代码实现了一下. 获取请求 Api 接口与 Cookie 实现起来非常容易,获取 cookie 模拟请求即可 使用 chrome 浏览器 登陆B

火狐浏览器访问网站出现 HTTP Error 400. The request is badly formed.错误,怎么解决

今天在访问某个网站时,出现一个"HTTP Error 400. The request is badly formed."错误, 那么应该如何解决呢? 1.问题描述: 用火狐浏览网站出现""HTTP Error 400. The request is badly formed."错误 2.问题原因: Http error 400错误请求,是客户端问题,跟服务器没关系(也就是本地出问题了) 3.解决方法: 通过清理垃圾.清洁注册表,或检查广告拦截模块及防火墙

Python安装selenium,配置火狐浏览器环境

想用Python去编写自动化脚本进行网页访问时,遇到了一些问题, File "C:\Python34\lib\site-packages\selenium-3.0.0b2-py3.4.egg\selenium\webdriver\common\service.py", line 64, in start stdout=self.log_file, stderr=self.log_file) File "C:\Python34\lib\subprocess.py",

提问!同一ajax请求获取的图片路劲,在谷歌浏览器能正确展示图片,在火狐浏览器则显示路径undefined

今天的工作学习之路遇见一个奇葩的问题,作为初级攻城狮的小生实在不知如何解决,都已经壁咚度娘一整天了,都未能解决问题,实属无奈,一开始认为是浏览器兼容的问题,但左看右看,也不是,也尝试过是不是页面加载与请求后没对应上,发现也不是,检查返回的结果,居然是undefined,可是在谷歌浏览器没有任何问题能正常展示图片,在火狐浏览器却是这样,来,看图说话: 首先此<img>标签为js动态拼接页面,因为获取的是会员等级,通过请求接口在另一个系统后台抓取图片路径,此拼接在循环中,每循环一次存入便存入数组中

启动火狐浏览器,但是无法获取网址

这是在pycharm编辑器运行时,能打开火狐浏览器,但是无法获取get()的网址 import unittest from selenium import webdriver class SerchTest(unittest.TestCase): def setUp(self): self.driver = webdriver.Firefox() self.driver.implicity_wait(30) self.driver.maximize_window() self.driver.ge

火狐浏览器不能获取 event,解决js报错问题

//←的keyCode等于:37 //→的keyCode等于:39 //↑的keyCode等于:38 //↓的keyCode等于:40 function keystoke(obj){ //var e = window.event;//这样在火狐浏览器不兼容,js失效 var e = window.event || arguments.callee.caller.arguments[0]; var tid=obj.id; var str=parseInt(tid); switch(e.keyCod

火狐浏览器使用firebug获取xpath和css path

工作中,常常会用到网页元素的定位方式,常用的有xpath和css path两种定位方式. 现在简单介绍如何使用工具自动生成元素的定位字符串. 首先介绍在火狐浏览器上使用FireBug及其扩展FirePath两款工具,它们可以自动生成定位字符串和验证自己编辑的定位字符串能否匹配网页元素. 对着这两款工具截图如下: 使用方法: 打开一个网页,例如www.hao123.com; 鼠标右键点击一个页面元素--使用FireBug查看页面元素,鼠标单击页面左上角的FireBug插件图标或者按下F12键,三种

Python 获取网易云音乐热门评论

--> html { line-height: 1.6 } body { font-family: -apple-system-font, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif; background-color: #f3f3f3; line-height: inherit } body.ric

火狐浏览器打不开12306提示“您的连接不安全”正确方法

火狐浏览器打不开12306网站提示"您的连接不安全"怎么办?12306是铁道部火车票的订票官网,然而一位Win10用户在使用火狐浏览器打开12306官网时,系统跳出提示:"您的连接不安全",这该怎么办呢?下面小编给大家带来了两种解决办法,详看下文. Win10系统下火狐浏览器打不开12306网站提示"您的连接不安全"怎么办? 方法一:添加例外的方式 1.先导入12306官网证书到系统. 2.打开火狐浏览器设置页--高级--证书,点击"查