吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4707|回复: 22
收起左侧

[Python 转载] 【腾讯云函数】新闻联播每日推送至手机

[复制链接]
ZhXT 发表于 2021-1-30 22:28
本帖最后由 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 代码

# -*- 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[i] + '\n\n')
                self.res.append(NewsText[i].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 图片示例

Screenshot_2021-01-31-18-40-59-857_com.tencent.mm.jpg " alt="" />
Screenshot_2021-01-31-18-40-53-447_com.tencent.mm.jpg " alt="" />

免费评分

参与人数 4吾爱币 +8 热心值 +4 收起 理由
18269055653 + 1 + 1 学习学习
dych1688 + 1 + 1 谢谢@Thanks!
H什么的最喜欢了 + 1 + 1 第壹次知道新闻联播还有网站
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

  • · 雲方|主题: 27, 订阅: 25

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Hangjau 发表于 2021-10-24 17:17
xcvg 发表于 2021-2-1 19:44
大佬怎么能替换成企业微信的机器人应用推送,想要试试机器人推送,但是我不会

你还是得部署一个机器人 将获取的东西发送到机器人就行了
Hangjau 发表于 2021-2-2 14:19
xcvg 发表于 2021-2-1 19:44
大佬怎么能替换成企业微信的机器人应用推送,想要试试机器人推送,但是我不会

也用云函数,把抓取的文章发送到机器人的URL就可以了
撒酒狂歌 发表于 2021-1-30 22:43
逐雅斋 发表于 2021-1-30 22:46
这个不错!感谢分享!
西楠 发表于 2021-1-30 23:38
支持一下
小小吴 发表于 2021-1-31 20:25
我有感谢楼主
dych1688 发表于 2021-1-31 22:50
刚才测试了获取当天的内容没有问题,获取上一天的正则不对,timedelta(-1))中的-1改成0
chenshuojian 发表于 2021-2-1 09:33
请求获取不到内容
xcvg 发表于 2021-2-1 19:44
大佬怎么能替换成企业微信的机器人应用推送,想要试试机器人推送,但是我不会
 楼主| ZhXT 发表于 2021-2-1 21:10
chenshuojian 发表于 2021-2-1 09:33
请求获取不到内容

在Windows下获取不到,在Linux下运行或者腾讯云函数下运行都是ok的。
 楼主| ZhXT 发表于 2021-2-1 21:11
xcvg 发表于 2021-2-1 19:44
大佬怎么能替换成企业微信的机器人应用推送,想要试试机器人推送,但是我不会

这个没了解过
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-22 19:16

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表