zoukankan      html  css  js  c++  java
  • 用Python监控男女朋友每天都在看哪些网站?这招绝了

    直接进入主题
    需求:

    (1) 获取你对象chrome前一天的浏览记录中的所有网址(url)和访问时间,并存在一个txt文件中

    (2)将这个txt文件发送给指定的邮箱地址(你的邮箱)

    (3)建立例行任务,每天定时自动完成这些操作,你就可以通过邮件查看你对象每天看啥了

    这里要注意:不管你是为了Python就业还是兴趣爱好,记住:项目开发经验永远是核心,如果你没有2020最新python入门到高级实战视频教程,可以去小编的Python交流.裙 :七衣衣九七七巴而五(数字的谐音)转换下可以找到了,里面很多新python教程项目,还可以跟老司机交流讨教!
    背景:

    (1)mac下chrome的浏览记录在哪?怎么获取网址(url)和访问时间?

    答:路径:/Users/用户名/Library/Application Support/Google/Chrome/Default/History

    History:是一个SQLite数据库,其实就是一个文件,可以用DB Browser for SQLite

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

    怎么获取:用python内置的sqlite3库连接History,通过sql得到我们想要的信息

    (2)怎么发送一个带附件的邮件?

    答:使用python内置的email和smtplib两个模块去构造和发送邮件

    (3)怎么把这些过程自动化?

    答:使用shell脚本将这些过程连接起来,然后使用crontab命令定时运行

    requirements:

    macOS Sierra

    Python3.6

    Chrome

    发送邮件的qq邮箱地址

    qq邮箱授权码

    SMTP服务器地址 : smtp.qq.com

    接受邮件的邮箱地址

    代码:

    1. get_history.py

    2. send_email.py

    3. start.sh

    4. crontab -e

    链接:  密码: fspx

    执行:

    (1) 首先我们用DB Browser for SQLite来看下History中的urls表的数据组成

    从表中可以看出,我们要的网址和访问时间就在urls.url和urls.last_visit_time中

    (2) get_history.py:通过这个脚本,我们可以把url和访问时间提取出来,并且存储在

    result.txt中,下图就是我得到的部分结果

    (3) send_email.py:通过这个脚本,我们可以把result.txt作为附件,发送给指定邮箱地

    址,下图是我得到的部分结果

    (4) ./start.sh :其实,前面几个脚本,已经完成了我们的任务,但是每次都执行这么多脚

    本,太麻烦了,我们可以把这些脚本的执行语句整理成一个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

    这样,我们在终端执行./start.sh,系统就会帮我们把这三条语句依次执行了

    注意:由于crontab命令需要绝对路径,所以这里的路径都是用绝对路径

    (5) crontab :如果使用了这个命令,在电脑开机并且联网的情况,系统会自动执行,然后把结果发到你的邮箱

    使用方法:在终端下输入crontab -e,使用vim输入下面一行代码就可以了

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

    说明:前面两个数字,就是你每天执行这个脚本的时间,我这里设置的是14:20。

    重要的事再说一遍,一定要写绝对路径!!!

    问题:

    1.server.login(from_addr, password)函数中的password不是邮箱密码,在qq邮箱中,指的是授权码

    答:qq邮箱授权码:什么是授权码,它又是如何设置?_QQ邮箱帮助中心

    2.访问History数据库时,显示The database is locked!

    答:在我们打开浏览器的同时去访问History时,就会出现这种情况,有两种解决办法:

    (1)关闭浏览器,再去访问

    (2)把History拷贝到其他文件夹中,然后访问该文件夹下的History

    3.timestamp时间戳怎么转换的

    答:last_visit_time是微秒,所以要除以10^6;

    last_visit_time的起始值是1601年1月1日0时0分0秒,所以要减去11644473600;

    筛选昨天的数据:现在的日期与last_visit_time的差值小于1的数据,就是距离当前时

    间小于1天的数据

    4.crontab出错

    答:crontab中所有路径都要写绝对路径,包括py脚本中的路径也要写绝对路径!

    5.路劲问题

    答:大家在复现的时候,要注意把路劲改成自己电脑上的,还有那个邮箱相关的信息也要改成自己的。

    总结:

    注意:不管你是为了Python就业还是兴趣爱好,记住:项目开发经验永远是核心,如果你没有2020最新python入门到高级实战视频教程,可以去小编的Python交流.裙 :七衣衣九七七巴而五(数字的谐音)转换下可以找到了,里面很多新python教程项目,还可以跟老司机交流讨教!

    1.运用python连接SQLite数据库,并执行sql操作

    2.运用python发送邮件

    3.运用shell和crontab建立自动化例行任务

    4.看别人隐私是不对的,这篇文章只是我自己瞎玩的,实际可行性不强
    本文的文字及图片来源于网络加上自己的想法,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

  • 相关阅读:
    【crontab】误删crontab及其恢复
    New Concept English there (7)
    New Concept English there (6)
    New Concept English there (5)
    New Concept English there (4)
    New Concept English there (3)
    New Concept English there (2)Typing speed exercise
    New Concept English there (1)Typing speed exercise
    New Concept English Two 34 game over
    New Concept English Two 33 94
  • 原文地址:https://www.cnblogs.com/chengxuyuanaa/p/12772882.html
Copyright © 2011-2022 走看看