开发日志251202
date
Dec 2, 2025
slug
开发日志251202
status
Published
tags
AI
计算机
summary
今天继续解决上周遗留的获取不到评论对象的问题
1. 评论块可能只含图片 所以获取不到
content 元素的内容 需要进行处理
2. ~~.findOne() 获取的子元素可能为空~~
我傻了 .findOne(id()) 方法获取不到是因为:部分手机的id是完整的com.ss.android.ugc.aweme:id/xx🌚type
Post
今天继续解决上周遗留的获取不到评论对象的问题
- 评论块可能只含图片 所以获取不到
content元素的内容 需要进行处理
.findOne()获取的子元素可能为空
我傻了
.findOne(id()) 方法获取不到是因为:部分手机的id是完整的com.ss.android.ugc.aweme:id/xx🌚
现在可以获取到当前可视范围内的评论 @TODO:以后要添加翻页读取更多评论的功能
之后就可以调用AI API生成需要的评论内容
目前的方法是
graph TD
A[设备]--发送请求--> B[主机]--发送请求-->C[AI平台]
C--返回请求-->B--返回请求-->A
//server.js
app.post('/api/bailian', async (req, res) => {
const { prompt, appId = 'APPID' } = req.body;
const apiKey = "sk-密钥";
const url = `https://dashscope.aliyuncs.com/api/v1/apps/${appId}/completion`;
const body = {
input: {
prompt: prompt
},
parameters: {
result_format: "text"
},
debug: {} // 可选,官方示例有
};
try {
console.log("nodejs开始处理POST请求...");
const apiRes = await fetch(url, {
method: "POST",
headers: {
"Authorization": `Bearer ${apiKey}`,
"Content-Type": "application/json"
},
body: JSON.stringify(body)
});
if (!apiRes.ok) {
const errorText = await apiRes.text();
console.error("API 错误:", apiRes.status, errorText);
return res.status(apiRes.status).json({ error: errorText });
}
const data = await apiRes.json();
const content = data.output?.text || data.output?.choices?.[0]?.message?.content || "无回复";
console.log("返回的content:" + content.trim());
res.json({ content: content.trim() });
console.log("返回结果完成");
} catch (err) {
console.error("Fetch 错误:", err);
res.status(500).json({ error: "fetch failed", details: err.message });
}
});
//auto.js
function getAIComment(prompt) {
prompt = prompt || '';
const url = "/api/bailian";
try {
let response = http.post(url, {
prompt: prompt
}
);
if (response.statusCode === 200) {
let responseText = response.body.string();
if (responseText) {
// 解析JSON
let responseData = JSON.parse(responseText);
if (responseData.content) {
let aiContent = responseData.content.trim();
return aiContent;
} else {
logInfo.e('响应中没有content字段');
logInfo.e('解析后的数据: ' + JSON.stringify(responseData));
return null;
}
} else {
logInfo.e('响应体为空');
return null;
}
} else {
logInfo.e('请求失败,状态码: ' + response.statusCode);
logInfo.e('错误信息: ' + response.statusMessage);
return null;
}
} catch (error) {
logInfo.e('请求异常: ' + error.toString());
logInfo.e('堆栈: ' + error.stack);
return null;
}
}
logInfo.d(`现在开始调用AI语言模型api`);
let prompt = `PROMPT`;
let aiComment = getAIComment(prompt);今天调试了老半天 一直没想到直接在
server.js 里打印传入的数据 这样调试就找得到原因找得到方法问题解决起来就很快
明天考虑将评论脚本完善 需要注意要加入 关键词判别 和 视频标题简介读取 功能 此外还有 下滑屏幕获取更多评论内容 以及 任务队列限制 的功能 方便后期根据 视频标题,简介和评论区内容 来生成内容 后面着手处理发视频脚本 然后把抖音整体的流程再去优化 例如 以设备设定 为准去分配任务 而不是现在的平台分流 这样能做到比较高的自由度 此外要 优化 刷视频脚本 插入一些应该加入的参数 例如 读取视频标题 关键词辨别 等
prompt配置需要比较花心思 我今天随意写了五六条发现ai还是会自由发挥 效果不佳 这个要仔细钻研一下