在電腦上浏覽個網頁,都要用到浏覽器,當你打開網頁的那一刻,浏覽器就會記錄你的浏覽信息,這些信息可能就是你的信息洩露的根源。下面看看如何使用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
安裝方式推薦有很多種,推薦使用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庫,另一個輪子;如有必要,可以了解一下。