用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 相关文章推荐
使用python实现扫描端口示例
Mar 29 Python
Python Requests 基础入门
Apr 07 Python
Python中绑定与未绑定的类方法用法分析
Apr 29 Python
浅谈Pandas 排序之后索引的问题
Jun 07 Python
Python错误处理操作示例
Jul 18 Python
深入浅析Python 中 is 语法带来的误解
May 07 Python
Python Django 简单分页的实现代码解析
Aug 21 Python
TensorFLow 变量命名空间实例
Feb 11 Python
如何使用Python抓取网页tag操作
Feb 14 Python
Python docutils文档编译过程方法解析
Jun 23 Python
python中tkinter窗口位置\坐标\大小等实现示例
Jul 09 Python
Python+Tkinter制作专属图形化界面
Apr 01 Python
Python图片处理之图片裁剪教程
用Python进行栅格数据的分区统计和批量提取
手把手教你怎么用Python实现zip文件密码的破解
Python基础学习之奇异的GUI对话框
教你使用pyinstaller打包Python教程
Matplotlib绘制混淆矩阵的实现
只需要100行Python代码就可以实现的贪吃蛇小游戏
You might like
使用phpQuery采集网页的方法
2013/11/13 PHP
php编程每天必学之表单验证
2016/03/01 PHP
PHP Static延迟静态绑定用法分析
2016/03/16 PHP
php如何执行非缓冲查询API
2016/07/22 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
2018/06/16 PHP
PHP将整数数字转换为罗马数字实例分享
2019/03/17 PHP
学习YUI.Ext基础第一天
2007/03/10 Javascript
js弹出框轻量级插件jquery.boxy使用介绍
2013/01/15 Javascript
判断js中各种数据的类型方法之typeof与0bject.prototype.toString讲解
2013/11/07 Javascript
Javascript中的异步编程规范Promises/A详细介绍
2014/06/06 Javascript
jQuery实用函数用法总结
2014/08/29 Javascript
jQuery学习笔记之创建DOM元素
2015/01/19 Javascript
JS定义类的六种方式详解
2016/05/12 Javascript
js实现文字选中分享功能
2017/01/25 Javascript
json的结构与遍历方法实例分析
2017/04/25 Javascript
详解Node项目部署到云服务器上
2017/07/12 Javascript
浅谈webpack打包之后的文件过大的解决方法
2018/03/07 Javascript
创建echart多个联动的示例代码
2018/11/23 Javascript
JS中的算法与数据结构之队列(Queue)实例详解
2019/08/20 Javascript
Vue Router中应用中间件的方法
2020/08/06 Javascript
Vue左滑组件slider使用详解
2020/08/21 Javascript
[59:30]VG vs LGD 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
python技能之数据导出excel的实例代码
2017/08/11 Python
详解Python中的动态属性和特性
2018/04/07 Python
django的登录注册系统的示例代码
2018/05/14 Python
python通过Windows下远程控制Linux系统
2018/06/20 Python
Python用5行代码写一个自定义简单二维码
2018/10/21 Python
django 实现后台从富文本提取纯文本
2020/07/02 Python
HTML5之多线程(Web Worker)
2019/01/02 HTML / CSS
迪拜航空官方网站:flydubai
2017/04/20 全球购物
印度首个本地在线平台:nearbuy
2019/03/28 全球购物
总会计师岗位职责
2014/02/19 职场文书
2014年学校党建工作汇报材料
2014/11/02 职场文书
学生喝酒检讨书500字
2014/11/02 职场文书
团代会邀请函
2015/02/02 职场文书
关于童年的读书笔记
2015/06/26 职场文书