当前位置: 首页 > news >正文

将python程序创建成可以在扣子中运行的插件

文章目录

  • 1. Python程序改写
  • 2. 扣子中的代码配置
  • 3. 测试运行情况

1. Python程序改写

这里博主以一个示例“抓取财联社的新闻”为例子:

#!/usr/bin/env Python
# coding=utf-8import pandas as pd
import requestsdef get_url_by_request(url, params=None):"""获取指定URL的响应数据"""headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ""Chrome/114.0.0.0 Safari/537.36"}response = requests.get(url, params=params, headers=headers)if response.status_code == 200:data = response.json()return data['data']def stock_info_global_cls():"""财联社-电报:https://www.cls.cn/telegraph """url = "https://www.cls.cn/nodeapi/telegraphList"data_json = get_url_by_request(url)['roll_data']temp_df = pd.DataFrame(data_json)big_df = temp_df.copy()big_df = big_df[["title", "content", "ctime", "level"]]big_df["ctime"] = pd.to_datetime(big_df["ctime"], unit="s", utc=True).dt.tz_convert("Asia/Shanghai")big_df["content"] = big_df["content"].str.replace(r'【[^】]*】', '', regex=True)big_df.sort_values(["ctime"], inplace=True)big_df.reset_index(inplace=True, drop=True)big_df["release_date"] = big_df["ctime"].dt.datebig_df["release_time"] = big_df["ctime"].dt.timebig_df = big_df[['release_date', "release_time", "title", "content", "level"]]return big_df.to_dict(orient="records")stock_info_global_cls()

得到的数据如下:

在这里插入图片描述
因为扣子的IDE无法debug,功能也不齐全,因此在Pycharm或vscode中将上述代码改写,使用极简必要的模块,返回一个list或dict:

import requests
import time
import redef get_url_by_request(url, params=None):"""获取指定URL的响应数据"""headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ""Chrome/114.0.0.0 Safari/537.36"}response = requests.get(url, params=params, headers=headers)if response.status_code == 200:data = response.json()return data['data']def get_cls_telegraph():"""财联社-电报:https://www.cls.cn/telegraph """url = "https://www.cls.cn/nodeapi/telegraphList"data_json = get_url_by_request(url)['roll_data']collect_data = []for _data in data_json:_local_time = time.localtime(_data['ctime'])collect_data.append({"release_date": time.strftime("%Y-%m-%d", _local_time),"release_time": time.strftime("%H:%M:%S", _local_time),"title": _data['title'],"content": re.sub(r'【[^】]*】', '', _data['content']),"level": _data['level'],})return collect_data

测试一下,得到如下结果:
在这里插入图片描述
然后就可以将上述代码直接应用于扣子了

2. 扣子中的代码配置

  1. 首先,登录扣子,进入【资源库】,点击右上角【+资源】,选择【云端插件-在Coze IDE中创建】

创建成功后,点击右上角【在IDE中创建工具】

  1. 点击【创建工具】,即可新建一个功能。在右边的代码编辑界面可以看到一个简单的示例:
from runtime import Args
from typings.check.check import Input, Outputdef handler(args: Args[Input])->Output:return {"message": "Hello, world!"}

这个handler为固定的写法,这些不动,我们把代码直接粘进来:

from runtime import Args
from typings.check.check import Input, Output
import requests
import time
import redef get_url_by_request(url, params=None):"""获取指定URL的响应数据"""headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ""Chrome/114.0.0.0 Safari/537.36"}response = requests.get(url, params=params, headers=headers)if response.status_code == 200:data = response.json()return data['data']def get_cls_telegraph():"""财联社-电报:https://www.cls.cn/telegraph """url = "https://www.cls.cn/nodeapi/telegraphList"data_json = get_url_by_request(url)['roll_data']collect_data = []for _data in data_json:_local_time = time.localtime(_data['ctime'])collect_data.append({"release_date": time.strftime("%Y-%m-%d", _local_time),"release_time": time.strftime("%H:%M:%S", _local_time),"title": _data['title'],"content": re.sub(r'【[^】]*】', '', _data['content']),"level": _data['level'],})return collect_datadef handler(args: Args[Input])->Output:return {"telegram_infos":get_cls_telegraph()}

左下角,要引入requests包,点击试运行,即可得到结果,整体的页面信息如下:
在这里插入图片描述
3. 测试通过后,点击右下角【更新输出参数】,自动配置元数据。然后点击【元数据】,补充更多信息,如:
在这里插入图片描述
4. 点击右上角【发布】,点击【下一步】,这里就算发布完成!

3. 测试运行情况

退出IDE编辑界面,在插件的主界面,这个功能拉倒右边有个小按钮【运行示例】,点击后得到如下结果:
在这里插入图片描述
这样就成功啦!

相关文章:

  • 将本地Springboot项目部署到Linux服务器
  • Vscode无法与远程服务器建立连接:connecting with ssh timed out
  • 处理对象集合,输出Map<String, Map<String, List<MyObject>>>格式数据,无序组合键处理方法
  • java快速幂
  • DIFY 又跟新了,来到 1.3.0 版本,看正文
  • 图像保边滤波之BEEPS滤波算法
  • Axure疑难杂症:利用中继器制作三级下拉菜单(逻辑判断进阶)
  • 【Axure视频教程】手电筒效果
  • Rust 学习笔记:关于切片的两个练习题
  • 图像处理篇---信号与系统的应用
  • vitest | 测试框架vitest | 总结笔记
  • 数据库学习笔记(十三)---存储过程
  • npm error code CERT_HAS_EXPIRED
  • 【机器学习】人工智能在电力电子领域的应用
  • 代码随想录算法训练营第60期第二十一天打卡
  • SpringCloud组件——Gateway
  • Android adb 安装应用失败(安装次数限制)
  • Android Compose vs 传统View系统:全面对比与选型指南
  • Linux 定时备份到windows 方案比较
  • MCP Servers玩玩WebUI自动化
  • 新华每日电讯:从上海街区经济看账面、市面、人面、基本面
  • 遭遇大规模停电,西班牙内政部宣布进入国家紧急状态
  • 上海112位全国劳动模范和先进工作者接受表彰,樊振东榜上有名
  • 外交部:印度香客赴中国西藏神山圣湖朝圣将于今年夏季恢复
  • AI应用大盘点:谁暴涨?谁掉队?
  • 民调显示特朗普执政百日支持率为80年来美历任总统最低