使用python获取浏览器收藏夹和历史浏览记录,然后可以...

简介: 使用python获取浏览器收藏夹和历史浏览记录,然后可以...

在电脑上浏览个网页,都要用到浏览器,当你打开网页的那一刻,浏览器就会记录你的浏览信息,这些信息可能就是你的信息泄露的根源。下面看看如何使用python获取一下历史浏览记录;

以chrome浏览器为例:

找到浏览器数据存放位置

数据存放位置一般都是固定的,基本都在以下位置

C:\Users\Administrator\AppData\Local\Google\Chrome\User Data\Default

如果在这个位置没有找到,可以打开chrome浏览器,在地址栏输入

chrome://version

在个人资料路径后面就是数据存放位置;

进入在文件夹,在其中查找文件:

Bookmarks 存放收藏书签
History 存放历史浏览记录

获取书签

Bookmarks是保存了书签信息,数据以一个json文件格式保存,所以获取书签信息直接使用python读取文件即可

def getBookmarks():
    marks = ''
    with open(bookmarks,'r',encoding='utf-8') as f:
        marks = json.loads(f.read())
    for name, item in marks['roots'].items():
        print('收藏夹名称:',name)
        child = item['children']
        for c in child:
            print(c['type'])  #folder,url
            print(c['name'])

在书签文件中;

bookmark_bar 书签栏
other 其他书签 .
synced 移动设备书签

获取历史浏览记录

Histroy文件是一个sqlite3数据库;获取其中数据需要使用sqlite3库;

使用数据库可视化工具打开数据库,在里面找到urls表,你所有的历史浏览记录都会保存在这个表中

python要连接数据库,获取数据,就需要使用python中的sqlite3;
sqlite3 是 Python 自带的库,不需要额外安装模块,操作简单。

首先定义数据库路径,将路径传入sqlite3.connect()方法中,先连接上数据库;
然后获取curosr游标,通过执行sql查询语句,获取表中数据;

具体代码可以参考如下:

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

需要备注的是:
一:

last_visit_time表示的url的最近访问时间;单位是微妙 换算成秒的时候,要除以10^6;
last_visit_time的起始值是1601年1月1日0时0分0秒,正常计算机的计算时间0秒是待办1970年,所以要减去11644473600,获取可以换成时间的秒数;
操作过程中发现,次属性可能为0.需做条件判断;

二:

当我们浏览器在运行过程中数据库会被加锁无法打开,所以在脚本运行前需要去kill掉浏览器的进程,
杀chrome进程的命令taskkill /f /t /im chrome.exe

所以再获取历史记录前需要执行杀进程命令:

kill_cmd = 'taskkill /f /t /im chrome.exe'
os.system(kill_cmd) #杀进程
result = get_history()

已有的轮子

python中有一个优秀的库,可以实现历史记录的获取,

browserhistory

安装browserhistory

安装方式推荐有很多种,推荐使用pip;

pip 是 Python 的包安装程序。其实,pip 就是 Python 标准库(The Python Standard Library)中的一个包,只是这个包比较特殊,用它可以来管理 Python 标准库(The Python Standard Library)中其他的包。pip 是一个命令行程序。 安装 pip 后,会向系统添加一个 pip 命令,该命令可以从命令提示符运行。

安装pip:

  • 安装python; 这个是必须安装的;
  • 下载pip:

    > 官网地址:https://pypi.org/project/pip/#downloads; 下载完毕后,解压
    • 打开命令行窗口,进入到pip解压后的目录;执行代码

      python3 setup.py install
      进行安装,
      安装完成后,将pip加入到系统环境变量中
  • 验证
    打开命令行窗口,输入pip list 或者pip3 list

在这里插入图片描述

  • 安装browserhistory:
    打开命令行窗口,输入执行以下代码,并回车

    pip install browserhistory

    等待提示安装成功既可;

代码实现:

安装完成browserhistory后,只需要导入,然后使用很少的代码就能实现上面的功能;

    import browserhistory
    dc = browserhistory.get_browserhistory()
    print(dc.keys()) #浏览器 chrome firefox
    print(dc['chrome'][0])

四行代码就能搞定;

使用browserhistory获取记录很简单,而且这个库整个源码只有区区不到200行,就可以轻松的获取谷歌,火狐,safari 这三种浏览器的历史浏览记录,而且支持,mac, linux, windows三种平台。学习一下源码,学会并掌握,对技术是一种很大的能力提升;

查看源码后,你会发现,其库里面不只有获取方法,还提供了保存历史记录到硬盘的功能函数;需要用到pandas库,另一个轮子;如有必要,可以了解一下。

相关文章
|
6月前
|
Web App开发 Python
在ModelScope中,你可以使用Python的浏览器自动化库
在ModelScope中,你可以使用Python的浏览器自动化库
69 2
|
14天前
|
数据采集 Web App开发 JavaScript
爬虫策略规避:Python爬虫的浏览器自动化
爬虫策略规避:Python爬虫的浏览器自动化
|
1月前
|
Web App开发 SQL 数据库
使用 Python 解析火狐浏览器的 SQLite3 数据库
本文介绍如何使用 Python 解析火狐浏览器的 SQLite3 数据库,包括书签、历史记录和下载记录等。通过安装 Python 和 SQLite3,定位火狐数据库文件路径,编写 Python 脚本连接数据库并执行 SQL 查询,最终输出最近访问的网站历史记录。
|
1月前
|
Web App开发 XML JavaScript
Python 操作浏览器:让 Python 和 Web 世界合二为一
Python 操作浏览器:让 Python 和 Web 世界合二为一
|
2月前
|
Web App开发 存储 安全
Python编写脚本,打开浏览器输入网址,自动化登陆网站
Python编写脚本,打开浏览器输入网址,自动化登陆网站
76 4
|
3月前
|
数据采集 缓存 JavaScript
​DrissionPage,Python浏览器自动化又一神器~
​DrissionPage,Python浏览器自动化又一神器~
|
3月前
|
数据采集 JavaScript 前端开发
Puppeteer-py:Python 中的无头浏览器自动化
Puppeteer-py:Python 中的无头浏览器自动化
|
4月前
|
机器人 Shell 开发者
`roslibpy`是一个Python库,它允许非ROS(Robot Operating System)环境(如Web浏览器、移动应用等)与ROS环境进行交互。通过使用`roslibpy`,开发者可以编写Python代码来远程控制ROS节点,发布和订阅话题,以及调用服务。
`roslibpy`是一个Python库,它允许非ROS(Robot Operating System)环境(如Web浏览器、移动应用等)与ROS环境进行交互。通过使用`roslibpy`,开发者可以编写Python代码来远程控制ROS节点,发布和订阅话题,以及调用服务。
|
5月前
python+Pycharm+selenium操作浏览器(Chorme或Edge)
python+Pycharm+selenium操作浏览器(Chorme或Edge)
150 1
|
5月前
|
缓存 网络协议 网络安全
使用浏览器浏览网页时发生了什么?
使用浏览器浏览网页时发生了什么?
48 0