使用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库,另一个轮子;如有必要,可以了解一下。

相关文章
|
29天前
|
Web App开发 Python
在ModelScope中,你可以使用Python的浏览器自动化库
在ModelScope中,你可以使用Python的浏览器自动化库
16 2
|
7月前
|
Web App开发 测试技术
Selenium+python之隐藏浏览器的“Chrome正在受到自动软件的控制“提示语
Selenium+python之隐藏浏览器的“Chrome正在受到自动软件的控制“提示语
165 0
|
4月前
|
Java 数据安全/隐私保护 C++
一款免配置的浏览器编程工具jupyter,可以同时编写 python,java,c,c++,体积小
一款免配置的浏览器编程工具jupyter,可以同时编写 python,java,c,c++,体积小
78 1
|
2月前
|
JavaScript 前端开发 开发工具
Python之JavaScript逆向系列——3、浏览器的开发工具——源代码的使用
Python之JavaScript逆向系列——3、浏览器的开发工具——源代码的使用
17 0
|
7月前
|
Web App开发 测试技术
Selenium+python之不打开浏览器,来运行测试用例
Selenium+python之不打开浏览器,来运行测试用例
163 0
|
3月前
|
测试技术 Python
python使用selenium操作浏览器的教程
python使用selenium操作浏览器的教程
63 1
python使用selenium操作浏览器的教程
|
8月前
|
Web App开发 Python
Python Chrome handless(无界面浏览器,add_argument 支持哪些参数,替代 PhantomJS)
Python Chrome handless(无界面浏览器,add_argument 支持哪些参数,替代 PhantomJS)
95 0
|
4月前
|
Web App开发 数据采集 数据挖掘
还有这种骚操作:使用Golang实现无头浏览器浏览和截图
还有这种骚操作:使用Golang实现无头浏览器浏览和截图
|
5月前
|
Web App开发 前端开发 JavaScript
Python Selenium 浏览器打印预览
Python Selenium 浏览器打印预览
|
8月前
|
Web App开发 网络协议 前端开发
【从零学习python 】86. 深入了解HTTP协议及其在浏览器和服务器通信中的作用
【从零学习python 】86. 深入了解HTTP协议及其在浏览器和服务器通信中的作用
87 0

热门文章

最新文章