|
|
本帖最后由 正己 于 2020-10-3 14:40 编辑
本教程是利用白嫖的老马的云函数搭配server酱实现帖子更新自动推送至微信主要是最近来论坛的时间也越来越少了,于是就写了这么一个脚本,这个昨天晚上就写好了,经过一晚上的测试没有问题
这里以耗耗为例@耗子爱吃草 ,当然也可以选择其他人,比如久情姐姐,涛涛,狗狗,牛牛等等,使用的方法也很简单,代码也不多,需要修改的地方只有四处,我会在代码里写出来。
其中的url选择你收听的人的主题然后复制链接替换就可以了,server酱的key自己去申请。
还有关于云函数的部署可以参考论坛发过的的帖子,这里需要注意的就是把执行方法改成
看一下效果:
import urllib.request
import http.cookiejar
import re
import datetime
import requests
skey = '申请的server酱的key'
def push():
server_url = "https://sc.ftqq.com/%s.send" % skey
title = main()
params = {
"text": '爷,您关注的帖子更新啦!', #server酱提示的标题可自行修改
"desp": title ##server酱提示的内容可自行修改
}
response = requests.get(server_url, params=params)
json_data = response.json()
if json_data['errno'] == 0:
print(" 推送成功。")
else:
print("推送失败")
def main(*args):
form = {'formhash': '',
'referer': 'https://bbs.binmt.cc/forum.php',
'loginfield': 'username',
'username': '你的账号',
'password': '你的密码',
'questionid': '0',
'answer': ''}
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3562.0 Safari/537.36'}
loginURL = "https://bbs.binmt.cc/member.php?mod=logging&action=login"
query = "&loginsubmit=yes&handlekey=login&loginhash=xxx&inajax=1"
"""为什么刚开始就直接使用带Cookie的opener呢,经过测试,在打开登录界面的时候,服务器就会向客户端发送3个Cookie,这些Cookie同样有验证作用,如果不带上,那么登录的时候,服务器会返回,含有非法字符,无法登录"""
cookie = http.cookiejar.CookieJar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cookie))
req = urllib.request.Request(loginURL, headers=headers)
resp = opener.open(req)
s = resp.read().decode('gb2312', errors='ignore')
# 获取登录界面的Hash值
formhash = re.findall('value="(.*?)"><input', s)[0]
loginhash = re.findall('loginhash=(.*?)">', s)[0]
form['formhash'] = formhash
post_form = urllib.parse.urlencode(form).encode('UTF-8')
req = urllib.request.Request(loginURL + query, headers=headers, data=post_form)
opener.open(req)
# 你要访问的网页
url = 'https://bbs.binmt.cc/home.php?mod=space&uid=4666&do=thread&view=me&from=space'
req = urllib.request.Request(url, headers=headers)
resp = opener.open(req)
haozi = resp.read().decode('UTF-8')
title = re.findall('target="_blank" >(.*?)</a>', haozi)[0]
tztime = re.findall('<span title="(.*?)">', haozi)[0]
if tztime == []:
print("耗耗还不快更新帖子!!!")
else:
d1 = datetime.datetime.strptime(tztime, '%Y-%m-%d %H:%M') # 将字符串转化为datetime类型的时间
print(d1)
d2 = datetime.datetime.now() + datetime.timedelta(hours=8) # 获取当前时间(因为云函数有时区差,所以要加上8个小时)
print(d2)
delta = d2 - d1
print(delta)
if delta.days < 1 and delta.seconds <= 1800:
print("两篇帖子相差时间为", delta.seconds, "秒") # delta.seconds获取相差的秒数
print("耗耗的帖子更新啦!!!")
push()
return title
else:
print("耗耗还不快更新帖子!!!")
if __name__ == '__main__':
main()
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|