赞
踩
本文将介绍如何使用Python编写简单的逻辑,通过调用API接口实现每日新闻推送功能。
requests
库来发送HTTP请求,以获取新闻数据。import os
import requests
pushplus_token = os.environ.get('pushplus_token') #pushplus推送令牌
topic = os.environ.get('topic') #pushplus群组id
PUSHPLUS_TOKEN | Pushplus 官网申请,免费微信消息推送 |
---|
在这个例子中,
os.environ.get('pushplus_token')
和os.environ.get('topic')
分别获取名为pushplus_token
和topic
的环境变量的值。这些环境变量应该在运行代码之前在操作系统或运行环境中进行设置。获取环境变量的好处是,您可以在不修改代码的情况下,根据需要在不同的环境中设置不同的值。例如,在开发环境和生产环境中可以使用不同的推送令牌和主题,而无需更改代码本身。
通过使用
os.environ.get()
函数,可以安全地获取环境变量的值。如果环境变量不存在,get()
函数将返回None
,因此您可以根据需要进行错误处理或设置默认值。
requests
库向API发送HTTP请求,获取新闻数据的响应。根据API提供的文档,我们可以了解如何构造请求,例如指定新闻的类别、时间范围等。image_url = "https://api.03c3.cn/zb/" #图片版本接口
text_url = "https://api.03c3.cn/zb/text.php" #文字版本接口
json
库将其解析为可操作的数据。text_response = requests.get(text_url)
content = text_response.text
在
requests
库中,text
属性是一个返回响应内容的属性。当使用requests.get()
方法发送GET请求并获取到响应后,可以通过text
属性获取响应内容的纯文本形式。在这个特定的例子中,
text_response.text
将获取到的API响应内容以纯文本形式赋值给content
变量,以便后续使用。这样可以将API返回的纯文本内容作为推送消息的一部分,进行进一步处理和构造推送数据。
pushplus_data = {
"token": pushplus_token,
"title": "每天60秒读懂世界",
"content": "{}<br/><img src='{}' />".format(content,image_url),
# "topic": "群组ID",
"template": "html"
}
pushplus_data
字典定义了推送消息的参数和内容。其中:
"token"
字段存储了推送服务的访问令牌,它的值是之前从环境变量中获取的pushplus_token
。"title"
字段存储了推送消息的标题,它的值是固定的字符串"每天60秒读懂世界"
。"content"
字段存储了推送消息的内容,它的值是通过格式化字符串的方式将content
和image_url
插入到HTML模板中的。其中,content
是之前从API获取的新闻内容,image_url
是存储图片URL的变量。"template"
字段指定了推送消息的模板类型,这里使用了HTML模板。
注意:在代码中有一行注释掉的
"topic": "群组ID"
字段,这是用于指定推送消息发送到指定群组的ID,如果需要发送到特定的群组,可以取消注释并设置相应的群组ID值。
pushplus_url = "https://www.pushplus.plus//send"
requests.post(pushplus_url, json=pushplus_data)
pushplus_url
变量存储了推送服务提供商的API地址,即要发送POST请求的目标URL。最后,使用
requests.post()
方法向pushplus_url
发送POST请求,将pushplus_data
以JSON格式作为请求的正文进行传递。这样,推送服务提供商的API将根据传递的参数和内容,将推送消息发送给目标用户。
import os import requests pushplus_token = os.environ.get('pushplus_token') topic = os.environ.get('topic') image_url = "https://api.03c3.cn/zb/" text_url = "https://api.03c3.cn/zb/text.php" text_response = requests.get(text_url) content = text_response.text pushplus_url = "https://www.pushplus.plus//send" pushplus_data = { "token": pushplus_token, "title": "每天60秒读懂世界", "content": "{}<br/><img src='{}' />".format(content,image_url), # "topic": "群组ID", "template": "html" } requests.post(pushplus_url, json=pushplus_data)
name: auto on: schedule: - cron: '30 22 * * *' #每天六点半 workflow_dispatch: env: pushplus_token: ${{ secrets.PUSHPLUS_TOKEN }} topic: ${{ secrets.TOPIC }} jobs: build: runs-on: ubuntu-latest steps: - name: Check out the repository uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v3 with: python-version: '3.10' - name: Install dependencies run: | python -m pip install --upgrade pip pip install requests - name: Run main.py run: python main.py #文件名
点击进入仓库地址,可以直接Fork配置运行
希望本文能够帮助您了解如何利用Python实现每日新闻推送功能的简单逻辑。
本文转自 https://juejin.cn/post/7245292130625470524,如有侵权,请联系删除。
感谢你能看到最后,给大家准备了一些福利!
感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。