网页跟踪器功能分享,使用到的依旧是强大的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、将为您显示不同的微信!