2012-02-29 65 views
1

我想顯示使用Python的系統的所有Internet歷史信息。 index.dat文件包含用戶的所有歷史信息,但它是編碼的。我怎樣才能解碼它?如何在Python中檢索和顯示Internet歷史信息?

[我聽說過WinInet方法INTERNET_CACHE_ENTRY_INFO。它提供了關於訪問過的網站,命中次數等的信息。]

Python中是否有任何庫可用於實現此功能?如果沒有,有沒有其他的選擇?

+3

哪個瀏覽器你在說什麼? – Kimvais 2012-02-29 21:29:40

+2

請編輯您的問題,指定您只關心Internet Explorer,或者您想知道如何使用任何瀏覽器。並非每個人都使用Internet Explorer。事實上,大多數互聯網用戶不使用Internet Explorer。 – ninjagecko 2012-02-29 21:31:28

+0

我想爲所有瀏覽器做這個瀏覽歷史...我通過閱讀索引文件爲IE做了這個。但我只能從index.dat文件獲得URL – Cholavendhan 2012-03-07 17:54:27

回答

2

代碼來獲取URL只能從Index.dat文件(IE的歷史上唯一)

import sys,os 
from string import * 
from binascii import * 
from chardet import * 
import re 
arr=[] 
ar=[] 
st="" 
url="" 
lines=[] 

def removenonascii(s): 

    l="" 
    for i in s: 
     if(ord(i)==46 or ord(i)==47 or ord(i)==72 or ord(i) in range(97,97+26) or ord(i) in range(65,65+26)): 
     l=l+i 
    lines=l.split('\n') 


    for line in lines: 
     if line.startswith("http"): 
      print line.split("URL")[0] 

infile =open("C:\Users\Cho\AppData\Local\Microsoft\Windows\History\History.IE5\MSHist012012030720120308\index.dat","r") 
for line in infile: 
    arr=line.split("Cho") 

for s in arr: 
    removenonascii(s) 
    print s 
+0

你可能想知道chardet不包含在python中的事實。依賴關係沒有任何問題,但指出這一點可能會有所幫助。 – 2013-12-21 23:12:34

+0

所有這些進口產品是做什麼的? 'string'已經過時了,我不會看到任何不是內置函數或方法的單一調用。 'chardet'和'binascii'看起來非常不相關。 – alexis 2015-06-07 13:15:58

1

如果您想爲Firefox歷史記錄執行此操作,則它是位於用戶的firefox配置文件文件places.sqlite中的SQLITE數據庫。它可以用python的sqlite3庫打開。現在如果你只關心資源管理器(就像你提到的index.dat所暗示的那樣),那麼我不知道這一點。

+0

我想爲所有瀏覽器瀏覽瀏覽歷史記錄...我通過閱讀索引文件爲IE做了這個。但我只能從index.dat文件中獲取URL。 – Cholavendhan 2012-03-07 17:53:54

+0

謝謝..是否每個瀏覽器都有所不同?它是否擁有系統的所有瀏覽信息的普通地點或註冊表。 – Cholavendhan 2012-03-07 17:56:32

+0

@Chola,沒有互聯網歷史記錄的中央註冊表。每個瀏覽器都可以用自己的方式跟蹤其歷史記錄,並確實如此。如果您想檢查Chrome,Opera或Safari的歷史記錄,則必須單獨進行研究。 – alexis 2012-03-07 22:21:16