用Python监控你的朋友都在浏览哪些网站?


Posted in Python onMay 27, 2021

一、需求

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

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

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

二、背景

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

五、执行

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

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

用Python监控你的朋友都在浏览哪些网站?

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

result.txt中,下图就是我得到的部分结果用Python监控你的朋友都在浏览哪些网站?

(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脚本中的路径也要写绝对路径!

七、总结

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

2.运用python发送邮件

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

4.看别人隐私是不对的,这篇文章只是我自己瞎玩的,实际可行性不强

八、展望

1.把这些打包成一个可执行文件,双击之后可以直接部署,并且可以跨平台

2.目前这个脚本,只有在电脑是打开并且联网的时候,才能自动执行,所以并不能理想地监控别人的浏览记录哦!

3.最后祝大家跟封面中的小草一样顽强,早日登上人生巅峰

到此这篇关于用Python监控你的朋友都在浏览哪些网站?的文章就介绍到这了,更多相关Python监控网站浏览记录内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
对numpy中array和asarray的区别详解
Apr 17 Python
Python实现的根据文件名查找数据文件功能示例
May 02 Python
解决Pycharm中import时无法识别自己写的程序方法
May 18 Python
通过Py2exe将自己的python程序打包成.exe/.app的方法
May 26 Python
selenium+python实现1688网站验证码图片的截取功能
Aug 14 Python
使用Python将Mysql的查询数据导出到文件的方法
Feb 25 Python
Python实现读取txt文件中的数据并绘制出图形操作示例
Feb 26 Python
Python Flask框架模板操作实例分析
May 03 Python
python如何获取列表中每个元素的下标位置
Jul 01 Python
OpenCV 表盘指针自动读数的示例代码
Apr 10 Python
python多线程semaphore实现线程数控制的示例
Aug 10 Python
Python实现Word文档转换Markdown的示例
Dec 22 Python
Python图片处理之图片裁剪教程
用Python进行栅格数据的分区统计和批量提取
手把手教你怎么用Python实现zip文件密码的破解
Python基础学习之奇异的GUI对话框
教你使用pyinstaller打包Python教程
Matplotlib绘制混淆矩阵的实现
只需要100行Python代码就可以实现的贪吃蛇小游戏
You might like
用PHP的ob_start();控制您的浏览器cache!
2006/11/25 PHP
php遍历目录输出目录及其下的所有文件示例
2014/01/27 PHP
php使用include 和require引入文件的区别
2017/02/16 PHP
jquery实现带复选框的表格行选中删除时高亮显示
2013/08/01 Javascript
JS操作Cookies的小例子
2013/10/15 Javascript
当jQuery1.7遇上focus方法的问题
2014/01/26 Javascript
jQuery简单实现网页选项卡特效
2014/11/24 Javascript
javascript实现验证身份证号的有效性并提示
2015/04/30 Javascript
js控制文本框输入的字符类型方法汇总
2015/06/19 Javascript
Javascript同时声明一连串(多个)变量的方法
2017/01/23 Javascript
BootStrap Fileinput插件和Bootstrap table表格插件相结合实现文件上传、预览、提交的导入Excel数据操作步骤
2017/08/07 Javascript
使用cookie绕过验证码登录的实现代码
2017/10/12 Javascript
JS实现点击复选框变更DIV显示状态的示例代码
2017/12/18 Javascript
Vue二次封装axios为插件使用详解
2018/05/21 Javascript
js实现导航跟随效果
2018/11/17 Javascript
layui数据表格 table.render 报错的解决方法
2019/09/29 Javascript
详解element-ui 表单校验 Rules 配置 常用黑科技
2020/07/11 Javascript
[36:14]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第二局
2016/02/28 DOTA
[01:56]无止竞 再出发——中国军团出征2017年DOTA2国际邀请赛
2017/07/05 DOTA
[45:18]2018DOTA2亚洲邀请赛 4.3 突围赛 Optic vs iG 第一场
2018/04/04 DOTA
[01:35:13]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第一场 1月18日
2021/03/11 DOTA
Python实现快速排序和插入排序算法及自定义排序的示例
2016/02/16 Python
深入解析Python中函数的参数与作用域
2016/03/20 Python
python音频处理用到的操作的示例代码
2017/10/27 Python
Python实现PS滤镜中马赛克效果示例
2018/01/20 Python
Python3标准库总结
2019/02/19 Python
Python日志syslog使用原理详解
2020/02/18 Python
如何基于windows实现python定时爬虫
2020/05/01 Python
Python基于xlrd模块处理合并单元格
2020/07/28 Python
PyCharm 2020.2.2 x64 下载并安装的详细教程
2020/10/15 Python
Vrbo英国:预订度假屋
2020/08/19 全球购物
如果Session Bean得Remove方法一直都不被调用会怎么样
2012/07/14 面试题
员工拾金不昧表扬信
2014/01/09 职场文书
给实习单位的感谢信
2014/02/01 职场文书
公司合作意向书范文
2014/07/30 职场文书
自从在 IDEA 中用了热部署神器 JRebel 之后,开发效率提升了 10(真棒)
2021/06/26 Java/Android