目录

  • 前言
  • (一)查询chrome数据缓存地址
    • 1.打开 chrome浏览器,输入 chrome://version,进入浏览器版本信息页面
    • 2.复制页面下图,划线地址
  • (二)提取收藏夹数据
    • 1.文件路径
    • 2.解析代码
  • (三)查看浏览历史数据
    • 1.文件路径
    • 2.解析代码
  • (四)完整代码&测试代码

前言

常使用chrome浏览器作为自己的默认浏览器,也喜欢使用浏览器来收藏自己的喜欢的有用的链接,自己也做了一个记录笔记的小脚本,想扩展收录chrome浏览器收藏夹的内容,,下面,,使用python提取chrome浏览器的历史记录,以及收藏夹。

(一)查询chrome数据缓存地址

1.打开 chrome浏览器,输入 chrome://version,进入浏览器版本信息页面

2.复制页面下图,划线地址

(二)提取收藏夹数据

1.文件路径

上面我的chrome浏览器的缓存路径是:
C:\Users\Administrator\AppData\Local\Google\Chrome\User Data\Default
浏览器的收藏夹的数据,记录在Bookmarks文件里面
Bookmark文件的内容格式是json

2.解析代码

解析代码为

import os
import json
#chrome data path
path = "C:/Users/Administrator/AppData/Local/Google/Chrome/User Data/Default"
#chrome browser bookmark
class BookMark:def __init__(self,chromePath=path):#chromepathself.chromePath = chromePath#parse bookmarkswith open(os.path.join(path,'Bookmarks'),encoding='utf-8') as f:bookmarks = json.loads(f.read())self.bookmarks = bookmarks#foldersself.folders = self.get_folders()def get_folders(self):#foldersnames = [(i,self.bookmarks['roots'][i]['name']) for i in self.bookmarks['roots']]return namesdef get_folder_data(self,folder=0):return self.bookmarks['roots'][self.folders[folder][0]]['children']def set_chrome_path(self,chromePath):self.chromePath = chromePathdef refresh(self):'update chrome data from chrome path'#parse bookmarkswith open(os.path.join(path,'Bookmarks'),encoding='utf-8') as f:bookmarks = json.loads(f.read())self.bookmarks = bookmarks

(三)查看浏览历史数据

1.文件路径

历史数据,存储在下面的History文件里面,内容格式是sqlite的数据库文件,可以直接使用sqlite3来解析,当然也可以使用DB Browser for SQLite来图形化界面显示History sqlite数据文件。

2.解析代码

import os
import sqlite3#chrome data path
path = "C:/Users/Administrator/AppData/Local/Google/Chrome/User Data/Default"#History
class History:def __init__(self,chromePath=path):self.chromePath = chromePathdef connect(self):self.conn = sqlite3.connect(os.path.join(self.chromePath,"History"))self.cousor = self.conn.cursor()def close(self):self.conn.close()def get_history(self):cursor = self.conn.execute("SELECT id,url,title,visit_count  from urls")rows = []for _id,url,title,visit_count in cursor:row = {}row['id'] = _idrow['url'] = urlrow['title'] = titlerow['visit_count'] = visit_countrows.append(row)return rows

(四)完整代码&测试代码

import os
import sqlite3
import json#https://editor.csdn.net/md?articleId=122820285
#chrome data path
path = "C:/Users/Administrator/AppData/Local/Google/Chrome/User Data/Default"#chrome browser bookmark
class BookMark:def __init__(self,chromePath=path):#chromepathself.chromePath = chromePath#refresh bookmarksself.refresh()#foldersself.folders = self.get_folders()def get_folders(self):#foldersnames = [(i,self.bookmarks['roots'][i]['name']) for i in self.bookmarks['roots']]return namesdef get_folder_data(self,folder=0):return self.bookmarks['roots'][self.folders[folder][0]]['children']def set_chrome_path(self,chromePath):self.chromePath = chromePathself.refresh()def refresh(self):'update chrome data from chrome path'#parse bookmarksassert os.path.exists(os.path.join(path,'Bookmarks')),"can't found ‘Bookmarks’ file,or path isn't a chrome browser cache path!"with open(os.path.join(path,'Bookmarks'),encoding='utf-8') as f:bookmarks = json.loads(f.read())self.bookmarks = bookmarks#History
class History:def __init__(self,chromePath=path):self.chromePath = chromePathself.connect()def connect(self):assert os.path.exists(os.path.join(path,'History')),"can't found ‘History’ file,or path isn't a chrome browser cache path!"self.conn = sqlite3.connect(os.path.join(self.chromePath,"History"))self.cousor = self.conn.cursor()def close(self):self.conn.close()def set_chrome_path(self,chromePath):self.close()self.chromePath = chromePathself.connect()def get_history(self):cursor = self.conn.execute("SELECT id,url,title,visit_count  from urls")rows = []for _id,url,title,visit_count in cursor:row = {}row['id'] = _idrow['url'] = urlrow['title'] = titlerow['visit_count'] = visit_countrows.append(row)return rowsif __name__ == "__main__":#bookmark 测试#传入chrome browser浏览器缓存路径book = BookMark(path)#获取所有文件夹信息names = book.get_folders()print(names)#获取第一个文件夹记录items = book.get_folder_data(0)print(items[-1]) #输出最后一个记录#从浏览器缓存文件夹中,更新文件夹记录book.refresh()#重新设置浏览器路径book.set_chrome_path(path)#History 测试history = History(path)       #初始化History,会自动连接数据库items = history.get_history() #获取浏览记录,当浏览器开启时,会报database lock错误print(items[-1])              #输出最后一个记录history.set_chrome_path(path) #重新设置浏览器路径

python 解析 google Chrome 浏览器历史浏览记录以及收藏夹数据相关推荐

  1. easyui onclickrow 中获取列名_获取Chrome浏览器历史浏览记录实例

    1.获取谷歌浏览器浏览历史保存位置,并拷贝一份到操作目录下2.找到浏览记录文件 "History"3.将"History"文件导出到其他目录下4.查看数据库ta ...

  2. python + selenium驱动 Chrome 浏览器,browsermobproxy记录har文件

    browsermobproxy是一个java编写的代理服务器,在自动测试中如果需要Chrome 浏览器network中的加载记录,就需要用 启动代理服务器,得到端口号,设置到谷歌的代理地址. brow ...

  3. Python爬取B站历史观看记录并用Bokeh做数据可视化

    待爬取的数据 爬虫代码  import os import time import requests import pandas as pd# cookie 用浏览器登录B站,按F12打开开发人员工具 ...

  4. Redis添加历史浏览记录

    参考资料 http://redisdoc.com/index.html http://redis-py.readthedocs.io/en/latest/#indices-and-tables 1.什 ...

  5. Google chrome 浏览器去除地址栏搜索历史纪录

    Google chrome 浏览器(V:84.0.4147.135)去除地址栏搜索历史纪录 打开 chrome://flags/ 搜索 "Omnibox Zero Suggestions o ...

  6. 一键导出所有浏览器的浏览记录到本地(包括Edge,Chrome,Firefox等都可以):BrowsingHistoryView

    很多时候知道某个东西自己以前在浏览器找过,而现在暂时找不到就会去翻以前的记录. 这个时候你会发现很多很久以前的浏览记录浏览器不记录了?(像Edge只会记录近3个月的记录,再往前的就难以在浏览器的支持范 ...

  7. 【电脑运用及修理】Google Chrome 浏览器

    Google Chrome 浏览器 Google Chrome 浏览器,中文名"谷歌浏览器",是一款免费的开源 web 浏览器,它由 Google 开发,发布于 2008 年. 当 ...

  8. CEF中文教程(google chrome浏览器控件) -- CEF简介

    官方主页:  点击打开链接 CEF简介: 嵌入式Chromium框架(简称CEF) 是一个由Marshall Greenblatt在2008建立的开源项目,它主要目的是开发一个基于Google Chr ...

  9. google支持本地ajax,360chrome,google chrome浏览器使用jquery.ajax加载本地html文件

    使用360chrome和google chrome浏览器加载本地html文件时,会报错,提示: XMLHttpRequest cannot load file:///Y:/jswg/code/html ...

  10. Python-Selenium Webdriver+google chrome浏览器爬取中国知网的文献概述

    Python-Selenium Webdriver+google chrome浏览器爬取中国知网的文献概述 目录 Python-Selenium Webdriver+google chrome浏览器爬 ...

最新文章

  1. mysql where后面if_mysql查询语句where后面加if判断
  2. JavaScript中foreach()用法及使用的坑
  3. 使用pm2启动node文件_使用 PM2 管理nodejs进程
  4. healthd: battery l=1 v=0 t=27.0 h=2 st=1 chg=a 注释方法
  5. 1205: 正序数(归并排序统计正序数)
  6. 网络信号管理大师怎么用_常说的OKR管理法,到底怎么用?
  7. 1009. 说反话 (20)
  8. vue.js更改颜色_如何使用Vue.js实现简单的标题更改应用程序
  9. 2018春考计算机技能考试题目,2018年山东省春季高考技能考试信息技术类专业考试(样题).PDF...
  10. React+TypeScript+webpack4多入口项目搭建
  11. [转]awesome-tensorflow-chinese
  12. [水煮 ASP.NET Web API2 方法论](12-1)创建 OData
  13. Python中stack(),vstack(),hstack()的用法和区别
  14. 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第4节 等待唤醒机制_2_等待唤醒案例分析...
  15. js操作浏览器cookie详解
  16. 【excel】绘制双纵坐标轴的图表
  17. Linux排查CPU使用率100%
  18. 向量积(叉积)及其计算
  19. douban_转自熊博网——牛逼顿
  20. wxid 转微信号 如何找到原始id教程

热门文章

  1. Vue - 选择器拼音快速检索目标(pinyin-match)
  2. Element-UI下拉框select实现拼音搜索
  3. 软件开发基本流程【一】
  4. MySQL(管理员常用命令)
  5. Android 开发横屏App或创建横屏布局
  6. 计算机电路中bga是什么,bga芯片是什么 BGA和芯片有什么区别?
  7. 西班牙语动词变位探究:陈述式现在时
  8. oracle 去空格函数未生效,发现ASCII值为49824的字符
  9. 【Android】Gallery实现选中图片变大,两侧没选中图片变小
  10. Cadence16.6 最新83号补丁下载-Hotfix_SPB16.60.083_wint_1of1.exe