minjun2046 发表于 2020-11-29 14:50

定时发送新闻联播文字版到微信【云函数版本(代码:30行)】

本帖最后由 minjun2046 于 2021-2-10 19:30 编辑

感谢大哥给的启发,原帖地址:https://www.52pojie.cn/forum.php ... 2%CE%C5%C1%AA%B2%A5

昨天看到@Hangjau 的帖子,代码已经写的很详细了,我就想着我没有服务器啊,准备放到云函数,折腾了好久,因为源代码用到了如lxml,yagmail等库,我也就是个小白,搞不上第三方库,所以啊折腾了半天搞不出来,
索性按照老哥的思路自己写了一下,

https://static.52pojie.cn/static/image/hrline/1.gif
语言:python库:
re -------正则
requests--------网络请求
datatime--------时间操作
简单易懂,用最简单粗暴方法,代码量差不多30行,发送微信原理用到sever酱,
# -*- coding: utf8 -*-
# -*- coding: utf-8 -*-
"""
Created on Sun Nov 29 10:47:40 2020

@author: MJ
"""
import requests
import re
import datetime
res=[]
url='http://www.xwlbo.com/txt.html'
tit=requests.get(url=url).text
#打开新闻联播文字版主页
time = datetime.datetime.now().timetuple()
date_time = str(time.tm_year) + '年' + str(time.tm_mon) + '月' + str(time.tm_mday-1) +"日新闻联播文字完整版内容"
#date_time = (datetime.date.today() + datetime.timedelta(-1)).strftime("%Y-%#m-%#d").replace('-', '{}').format('年','月') + "日新闻联播文字完整版内容"
#获取时间
print(tit)
print(date_time)
id=re.findall(r'id="v(.*?)">%s'%(date_time),tit)
print(id)
id=id
#取得id
idurl='http://www.xwlbo.com/%s.html'%(id)
title=requests.get(url=idurl).text
#获取对应id内容
b=re.findall(r'.html">(.*?)</a></strong></p><p>', title)
n=re.findall(r'</strong></p><p>(.*?)</p><p><strong>',title)
#提出所需要内容
try:
    for i in range (0,len(b)-1):
      res.append('标题:'+b+'\n\n')
      res.append(n.replace('</p><p>','')+'\n')
      res.append('\n')
except:
    pass
s = ''.join(res)
#转换好要发送的内容
data={
      'text':'新闻联播文字版',
      'desp':s,}
print(requests.post(url='https://sc.ftqq.com/换成你的.send',data=data))

代码复制到云函数以后再搞个时间触发就ok了,只需要换sever酱码,

对了因为我用的是re.findall,所以最后一个国际新闻匹配不到,也没花时间去搞(反正也是假新闻!),还望老哥们指点。
2021-2-10
更新一下,老早就修改了,当时存在一个问题,就是如果日期是单数,跟接收的信息不匹配(如2021-2-9,接收的却是2021-2-09),具体记不清楚了,如还有需要的,修改一下,问题已解决。


ps:还有啥好玩的啊?

Lorentine 发表于 2020-11-29 15:10

整挺好的{:301_1003:}

hsx778899 发表于 2021-6-9 15:46

执行摘要测试失败
请求ID       
16b355d5-b4db-43b5-adb6-da567116d781
运行时间       
0ms
计费时间       
0ms
运行内存       
0MB
返回结果

Text
{"errorCode":-1,"errorMessage":"Traceback (most recent call last):\nFile \"/var/runtime/python3/bootstrap.py\", line 133, in init_handler\n    func_handler = get_func_handler(file.rsplit(\".\", 1), func)\nFile \"/var/runtime/python3/bootstrap.py\", line 159, in get_func_handler\n    mod = imp.load_module(mname, *imp.find_module(mname))\nFile \"/var/lang/python3/lib/python3.6/imp.py\", line 234, in load_module\n    return load_source(name, filename, file)\nFile \"/var/lang/python3/lib/python3.6/imp.py\", line 172, in load_source\n    module = _load(spec)\nFile \"Ϗrozen; importlib._bootstrap&gt;\", line 675, in _load\nFile \"Ϗrozen; importlib._bootstrap&gt;\", line 655, in _load_unlocked\nFile \"Ϗrozen; importlib._bootstrap_external&gt;\", line 678, in exec_module\nFile \"Ϗrozen; importlib._bootstrap&gt;\", line 205, in _call_with_frames_removed\nFile \"/var/user/index.py\", line 30, in &lt;module;&gt;\n    id=id\nIndexError: list index out of range","requestId":"16b355d5-b4db-43b5-adb6-da567116d781","statusCode":443}

6767 发表于 2020-11-29 15:11

很好的网站,
点进去发现了他们的公众号哈哈

弗由 发表于 2020-11-29 16:04

这个好,谢谢分享。

Hangjau 发表于 2020-11-29 16:53

库的话就是 pip 直接装下就可以了。 有时候容易抽风 搞离线安装也可以。 我还没搞过server酱这个东西。这个是个什么东西。

正己 发表于 2020-11-29 16:54

云函数还可以监控论坛的帖子,康康有没有更新了

minjun2046 发表于 2020-11-29 19:24

Hangjau 发表于 2020-11-29 16:53
库的话就是 pip 直接装下就可以了。 有时候容易抽风 搞离线安装也可以。 我还没搞过server酱这个东西。这个 ...

本地的话 pip是可行,云函数就好复杂,server酱,强烈建议你搞下,绝对比邮件方便多了!

HJC168 发表于 2021-1-15 08:21

博主你好,请问这个是是python3.6m吗

ymhld 发表于 2021-1-15 08:45

https://sc.ftqq.com/换成你自己的.send

这个应该换成ID?还是什么?

minjun2046 发表于 2021-1-17 15:15

ymhld 发表于 2021-1-15 08:45
https://sc.ftqq.com/换成你自己的.send

这个应该换成ID?还是什么?
换成你自己的,方糖的
页: [1] 2 3
查看完整版本: 定时发送新闻联播文字版到微信【云函数版本(代码:30行)】