乐于分享
好东西不私藏

扣子入门教程02 模仿一个天气插件

扣子入门教程02 模仿一个天气插件

大家好,我是老张,我希望我的创作可以让普通人稳定副业,学会使用各种工具合理躺平。
工作流完整截图如下:

01 搭建工作流
1、登录扣子,新建一个工作流;
地址:https://www.coze.cn/home
2、准备工作
今天要用到”https://www.weather.com.cn/weather1d/101010100.shtml“地址,101010100是城市的地区编码。
打开”https://www.weather.com.cn/weather1d/101010100.shtml“,右击检查->网络->刷新网站->找到city.js文件->右击另存为“city.txt”。
解释:
  • 直接打开city.js文件会出现乱码。
  • 保存为TXT文件是因为coze不支持js文件上传。
3、设置开始节点;
4、添加节点->插件->文件读取->添加->设置提示词及参数
5、添加节点->业务逻辑代码->设置提示词及参数
import reasync def main(args: Args):    city = args.params.get('city')    filename=args.params.get('filename')    # with open(filename,'r',encoding='utf-8') as f:    #     content=f.read()    content=re.search(r'\{.*\}',filename,re.DOTALL)    if content:        content=content.group()        data=eval(content)        area={}        for outer in data.values():            for middle in outer.values():                for v in middle.values():                    area[v['NAMECN']]=v['AREAID']        area_code=area.get(city)        if area_code:            return {                'success':True,                'city':city,                'areaid':area_code            }        else:            return {                'success':False,                'city':city,                'areaid':'未找到'            }
6、添加节点->业务逻辑代码->设置提示词及参数
import urllib.requestimport reimport jsonasync def main(args: Args):    areaid = args.params.get('areaid')    city = args.params.get('city')    url = f'https://www.weather.com.cn/weather1d/{areaid}.shtml'    try:        # 使用 urllib 发送请求        req = urllib.request.Request(            url,            headers={                'User-Agent''Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'            }        )        with urllib.request.urlopen(req, timeout=10as response:            html = response.read().decode('utf-8')        result = {city: {}}        # 提取 hidden_title 的 value        hidden_match = re.search(r'<input[^>]*id="hidden_title"[^>]*value="([^"]*)"', html)        if hidden_match:            data = hidden_match.group(1).split(' ')            # 解析数据            if len(data) > 1:                result[city]['week'] = data[1]            if len(data) > 3:                result[city]['weather'] = data[3]            if len(data) > 5:                result[city]['temperature'] = data[5]        # 提取更新时间        update_match = re.search(r'<input[^>]*id="fc_24h_internal_update_time"[^>]*value="([^"]*)"', html)        if update_match:            result[city]['update_time'] = update_match.group(1)        return {            'success'True,            'data': result,            'error':''        }    except Exception as e:        return {            'success'False,            'error'str(e),            'data':{}        }
7、设置结束节点。
02 测试工作
点击试运行->设置提示词及参数
03 结语
以上就是工作流搭建过程,感兴趣的自己试着搭建一次。