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