0%

美剧更新提醒 by Python

虽然不是美剧的忠实爱好者,但是还是关注了一些比较有意思的美剧,很多时候由于比较忙或者忘记了去查看美剧更新,错过了这些精彩剧集。
walking dead

这里用python+VPS实现了在线检查美剧页面是否有剧集更新,有的话就发邮件提醒。这里以《行尸走肉》和《生活大爆炸》为例。

依赖

检查更新

这部分主要就是简单的html页面解析,将相对应的剧集名称存在txt中,每次解析一次网页,并将得到的结果与txt中的结果进行比较,如果不同,则有更新,返回最新的剧集和百度网盘地址

  • 整体代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# -*- coding: utf-8 -*-

import requests # 获取html
from lxml import etree # 解析html
import os # 文件相关操作
import smtplib # 发邮件
from email.mime.text import MIMEText
import time # 延时

# 发邮件
def send_email(series, download_url):
_user = "xxx@163.com" # 网易邮箱需开启smtp服务
_pwd = "xxxx"
_to = "xxxxxxxxxxxxx"

content = series + ' 已更新' + '\n\n' + '百度网盘地址: ' + download_url
msg = MIMEText(content)
msg["Subject"] = '剧集更新提醒'
msg["From"] = _user
msg["To"] = _to

s = smtplib.SMTP("smtp.163.com", timeout=30) #连接smtp邮件服务器,端口默认是25
s.login(_user, _pwd) #登陆服务器
s.sendmail(_user, _to, msg.as_string()) #发送邮件
s.close()

# 获取剧集文件
def check_series_update(url):
r = requests.get(url)
page = etree.HTML(r.text)
hrefs = page.xpath(u"//a")
current = []
for index, href in enumerate(hrefs):
txt = href.text
if txt and 'SCG' in txt:
current.append(txt.encode('utf-8')) # 剧集名称
current.append(hrefs[index+1].attrib['href']) # 百度网盘地址

curText = ''.join(current)

# 剧集文件名
series = url.split('/')[-1]
series_file = series[0:-5] + '.txt'

# 剧集文件已存在
if os.path.isfile(series_file):
# read
f = open(series_file)
lastText = f.read()
f.close()

if curText == lastText:
print 'No update'
else:
# write
f = open(series_file, 'w')
f.write(curText)
f.close()
send_email(current[0], current[1])
else:
# write
f = open(series_file, 'w')
f.write(curText)
f.close()

# 获取更新
def check_update(urls):
while True:
for url in urls:
check_series_update(url)
time.sleep(5)

if __name__ == "__main__":
urls = ["http://www.ttmeiju.com/meiju/The.Big.Bang.Theory.html", "http://www.ttmeiju.com/meiju/THE.Walking.Dead.html"]
check_update(urls)

vps运行

将脚本放在服务器上,利用screen指令创建新窗口,在该窗口中运行脚本,即可实现实时监控

相关参考内容


由于可以直接获取到百度网盘的链接,后期考虑看可否直接将该链接中的内容保存到自己的百度网盘指定目录,那样就更加方便了