网页跟踪器功能分享,使用到的依旧是强大的python

优采云 发布时间: 2021-03-28 05:09

  网页跟踪器功能分享,使用到的依旧是强大的python

  您是否在日常生活中遇到过此类麻烦,是否需要在线获取信息,但是不知道何时更新信息?

  某些网站更加用户友好。有一些更新消息会通过微信,短信,电子邮件或电话通知我们,但其中大多数尚未更新,尤其是您想要的信息。

  在我们的日常生活中,我们都与熟人和朋友谈论“有消息时通知我”,互联网上是否有这样的工具可以自定义类似的跟踪器?

  

  今天,我将与您分享这种Web跟踪器的功能。仍然使用功能强大的python。

  需求说明

  首先,指定我们需要实现的功能,例如,以我的网站“永恒之王的宝藏箱”为例。

  

  要求是:跟踪网站 文章,一旦文章有更新,请通过qq电子邮件通知我

  (说明:使用QQ电子邮件的优势在于,一旦有新电子邮件,它将在微信中及时得到通知。当然,您也可以使用另一个微信通知来通知您,如果您有机会撰写另一个微信通知。)

  解决方案

  简要描述解决方案的想法:

  1、获取网站页面的源代码,提取第一篇文章文章的标题,并将其存储在计算机中;

  2、通过程序设置每个固定时间(例如1小时),并提取网站的第一篇文章文章的标题。如果它与先前存储的标题不一致,则表示存在更新。

  3、向qq邮箱发送电子邮件,以通知网站有要检查的更新。同时,将最新的文章保存到计算机以进行下一次比较。

  设计网络跟踪程序

  基于上述想法,很容易处理。 Yong Yongjun花了大约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 "

    message ['To'] = "XXX "

    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”。主程序是免费的。然后运行主程序。

  

  运行结果

  

  程序使用演示:

  演示如何了解首次time_Tencent Video中的网页信息更新

  Eternal King已打包了以上代码,所需合作伙伴的后端wx公共帐户可以回复“ Web跟踪”。

  可以自定义程序的地方

  该程序目前不能做成通用版本,因为根据不同的网站和不同的邮箱,有一些地方可以更改:

  1、 url,这是需要跟踪的网页的网址

  2、标题,获取第一个文章标题的xpath地址

  3、 time.sleep(),即检索网站信息的频率

  4、用于发送和接收邮件的电子邮件地址

  将以上内容更改为自定义个人Web跟踪器所需的内容。关于代码的特定修改,如果有时间,我将打开另一篇文章文章进行讨论。

  

  

  1、分享|教您制作一个微信机器人与您聊天,只需几行代码

  2、将为您显示不同的微信!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线