用python定制网页跟踪神器,有信息更新第一时间通知你(附视频演示)

在日常生活当中你是否有过这样的烦恼,需要在网上获取信息,但是不知道信息何时会更新

  • 公务员等各类考试公告、考试成绩的公布

  • 行业最新资讯的发布,如财经资讯、互联网公司新闻

  • 追的电视剧、漫画最新更新内容
    ……

有些网站做的比较人性化,有更新消息会通过微信、短信、邮件或者电话等方式通知我们,但是大部分还没有,尤其是通知给你想要的信息。

日常生活中我们都会和熟人朋友讲「有消息了及时通知我」,那在互联网上是不是可以有这样的工具可以定制一个类似的跟踪器呢?

今天就来给大家这样的做这样一个网页跟踪器功能的分享,使用到的依旧是强大的python。

需求具体化

首先把我们需要实现的功能具体化,比方以我的网站「永恒君的百宝箱」为例。

需求就是:跟踪网站文章,一旦有文章更新,就通过qq邮件来通知我
(说明一下:用qq邮件有个好处就是,一旦有新的邮件,微信里面会及时通知。当然也可以用另外一个微信号通知,有机会再写一个微信通知的。)

解决思路

简单的描述一下解决思路:
1、获取网站页面的源代码,提取第一篇文章的标题,存储到电脑中;
2、通过程序设定每个固定的时间(比如1个小时),提取网站第一篇文章标题,如果和之前存储的标题不一致,则说明有更新。
3、向qq邮箱发送邮件,告知网站有更新可以去查看。同时将最新的文章保存到电脑,以便下一次比对。

设计网页跟踪程序

有了上面的思路就好办了,永恒君花了大概3个小时的时间调试好了下面的代码,分了主程序和发邮件程序两块。

主程序

import requests
from lxml import etree
import time
import os
from sendemail import email

while True:
    url = "http://www.yhjbox.com/"   #目标跟踪网页
    content = requests.get(url).content 
    html = etree.HTML(content)
    title = html.xpath("/html/body/section/div[2]/div/article[1]/header/h2/a/@title")[0]
    #获取第一篇文章标题    
    print("当前的标题为:%s"%title)
    #屏幕打印获取的第一篇文章标题

    if not os.path.isfile("E:\\title_temp.txt"):
    #判断title_temp.txt文件是否存在,不存在则创建,并写入获取的第一篇文章标题
        f = open("E:\\title_temp.txt", "w")
        f.write(title)
        print("将当前标题记录在E:\title_temp.txt中,等待检测")  
        f.close()
    else:
    #title_temp.txt文件存在的话,提取里面标题,和获取的标题对比
        with open("E:\\title_temp.txt", "r+") as f:
            old_title = f.read()
            if old_title !=title:
            #如果读取内容和获取的网站第一篇文章标题不一致,则表明网站更新
                email()#发送qq邮件
                f.seek(0)
                f.truncate()                             
                print("网站有更新,需通知")
                f.write(title)
                #写入最新的标题内容,方便下一次比对
                break
                #退出循环                
            else:
            #否则的话,表明网站没有更新                
                print("网站暂时没有更新\n")
    time.sleep(5)
    #检测网页内容时间间隔,单位为秒(s)

发邮件程序

import smtplib
from email.mime.text import MIMEText
from email.header import Header

def email():

    sender = 'XXXX@163.com'#填写发件人
    pwd = 'XXXX'#登录密码
    receivers = ['XXXX@qq.com']#填写收件人     

    message = MIMEText("你好,网站有内容更新,请及时查看","plain",'utf-8')
    # 三个参数:第一个为文本内容,第二个为plain设置文本格式,第三个为utf-8设置编码
    message ['From'] = "XXX <XXX@163.com>"
    message ['To'] = "XXX <XXX@qq.com>"

    subject = "网站有内容更新"
    #邮件主题
    message["Subject"] = subject

    try:
        # 使用非本地服务器,需要建立ssl连接
        smtpObj = smtplib.SMTP_SSL("smtp.163.com",465)
        #发件箱邮件服务器
        smtpObj.login(sender,pwd)
        smtpObj.sendmail(sender,receivers,message.as_string())
        print("邮件发送成功")
    except smtplib.SMTPException as e:
        print("Error:无法发送邮件.Case:%s"%e)

使用方法:

两个程序保存在同一个文件夹,其中发邮件程序必须保存为「sendemail.py」,主程序随意。然后运行主程序即可。

运行结果

程序使用演示:


演示如何第一时间知道网页信息更新_腾讯视频


永恒君把上面的代码打包了一下,需要的伙伴后台wx公号回复「网页跟踪」即可。

程序可定制的地方

这个程序目前还没法做成通用的版本,因为根据不同网站、不同邮箱要做更改的地方有:

1、url,即需要跟踪的网页地址

2、title,即获取第一篇文章标题的xpath地址

3、time.sleep(),即间隔多长时间提取一次网站信息

4、收发件邮箱地址

把上面这些改成你自己需要的内容即可定制私人的网页跟踪器。关于代码的具体的修改内容,打算有空的话再开一篇文章具体说说。

1、分享|教你制作一个微信机器人陪你聊天,只要几行代码

2、带你看看不一样的微信!

3、分享 | 微信一键统计、自动通过申请、自动回复(操作演示)

4、你还在为无法下载网站视频烦恼?试试You-Get,统统帮你搞定

5、有了这四款装备,告别繁琐和重复的工作!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容