如何从Jsoup获取的Elements类型中逐行输出每篇文章的标题
你现在遇到的问题核心是直接输出Elements类对象时,它的默认序列化逻辑会把所有选中元素的内容直接拼接,不会自动加分隔符和标签结构,按以下步骤处理即可实现需求:
解决方法
1. 提前配置Telegram Bot的解析模式
调用机器人发消息接口时,先指定解析模式为HTML,这样你拼接的h3标签会被Telegram识别为对应格式渲染。如果更习惯用Markdown格式,也可以指定为MARKDOWN解析模式。
2. 遍历元素拼接格式化内容的代码示例
// 初始化内容拼接容器 StringBuilder sendContent = new StringBuilder(); // 遍历所有抓取到的标题元素 for (Element titleNode : article) { // 提取标题文本 String titleText = titleNode.text(); // 可选:提取标题对应的跳转链接,不需要可以跳过这行 String titleUrl = titleNode.attr("href"); // 每个标题用h3标签包裹,末尾加换行符分隔 sendContent.append("<h3>") // 不需要带链接的话可以删掉a标签部分 .append("<a href=\"").append(titleUrl).append("\">") .append(titleText) .append("</a>") .append("</h3>\n"); } // 最后把拼接完成的sendContent作为消息内容传给发消息接口即可
可选适配方案
如果用Markdown解析模式,把h3标签替换为Markdown的三级标题格式即可:
sendContent.append("### ").append(titleText).append("\n\n");
内容的提问来源于stack exchange,提问作者Deniss Zadorozhniy
相关产品推荐
相关产品推荐

