【腾讯云函数】新闻联播每日推送至手机
本帖最后由 ZhXT 于 2021-1-31 18:45 编辑### 0x01
基于吾爱老哥的代码进行优化,原帖(https://www.52pojie.cn/forum.php?mod=viewthread&tid=1316933&highlight=%D0%C2%CE%C5)
### 0x02
原代码的逻辑是生成今天的日期,然后使用正则匹配出正文。
然鹅原代码在Windows下面使用“**#**”控制生成如“**2021年1月30日**”这种格式,刚好可以匹配到正文,在Windows下运行毫无破绽。
但是部署到云函数“**#**”失效,生成日期格式为“**2021年01月30日**”(多了一个0)无法获取正文,因为这个薅了一天头发,淦。
有兴趣的老哥可以看下原帖14行代码和我的12行代码对比
### 0x03 使用
替换server酱地址,部署至云函数即可,未使用第三方库。
### 0x04 代码
~~~python
# -*- coding: utf8 -*-
import requests
import re
import datetime
class News(object):
def __init__(self):
#Server酱地址
self.ServerJ = 'http://sc.ftqq.com/XXXXX.send'
#新闻联播文字版主页
self.TotalPage = 'http://www.xwlbo.com/txt.html'
self.DateTime = (datetime.date.today() + datetime.timedelta(-1)).strftime("%-Y-%-m-%-d").replace('-', '{}').format('年','月') + "日新闻联播文字完整版内容"
self.Text = requests.get(url=self.TotalPage).text
self.res = []
self.headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
}
def FromTotal(self):
# 取得id
id = ''.join(re.findall(r'id="v(.*?)">%s' % (self.DateTime), self.Text))
IdUrl = 'http://www.xwlbo.com/%s.html' % (id)
Response = requests.get(url=IdUrl).text
# 获取对应id内容
NewsTitle = re.findall(r'.html">(.*?)</a></strong></p><p>', Response)
NewsText = re.findall(r'</strong></p><p>(.*?)</p><p><strong>', Response)
# 提出所需要内容
try:
for i in range(0, len(NewsTitle) - 1):
self.res.append('[+] 标题:' + NewsTitle + '\n\n')
self.res.append(NewsText.replace('</p><p>', '') + '\n')
self.res.append('\n')
except:
pass
s = ''.join(self.res)
# 转换好要发送的内容
data = {
'text': '新闻联播文字版',
'desp': s, }
#print(str(data))
requests.post(url=self.ServerJ, data=data)
def main(self):
self.FromTotal()
# 云函数入口
def main_handler(event, context):
run = News()
run.main()
if __name__ == '__main__':
run = News()
run.main()
~~~
### 0x04 图片示例
![]()
![]()
xcvg 发表于 2021-2-1 19:44
大佬怎么能替换成企业微信的机器人应用推送,想要试试机器人推送,但是我不会
你还是得部署一个机器人 将获取的东西发送到机器人就行了 xcvg 发表于 2021-2-1 19:44
大佬怎么能替换成企业微信的机器人应用推送,想要试试机器人推送,但是我不会
也用云函数,把抓取的文章发送到机器人的URL就可以了
感谢分享 这个不错!感谢分享! 支持一下 我有感谢楼主 刚才测试了获取当天的内容没有问题,获取上一天的正则不对,timedelta(-1))中的-1改成0 请求获取不到内容 大佬怎么能替换成企业微信的机器人应用推送,想要试试机器人推送,但是我不会{:1_904:} chenshuojian 发表于 2021-2-1 09:33
请求获取不到内容
在Windows下获取不到,在Linux下运行或者腾讯云函数下运行都是ok的。 xcvg 发表于 2021-2-1 19:44
大佬怎么能替换成企业微信的机器人应用推送,想要试试机器人推送,但是我不会
这个没了解过:rggrg