You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Puppeteer提取包含图片的标签完整HTML内容?

解决Puppeteer抓取含图片HTML内容的问题

问题分析

你之前的代码有两个核心问题:

  • textContent仅提取文本内容,会丢弃所有HTML标签及元素属性(比如img的src)
  • 选择器article > div#novel_content > div不符合示例HTML结构,目标内容直接是#novel_content下的p标签,不存在嵌套的div

解决方案

要保留完整的HTML结构和元素属性,需使用元素的innerHTML属性,它会返回元素内部的全部HTML代码。结合Puppeteer的page.evaluate在浏览器上下文执行代码:

// Puppeteer代码示例
const targetHTML = await page.evaluate(() => {
  const contentContainer = document.querySelector('div#novel_content');
  // 存在目标元素则返回innerHTML并去除首尾空白,否则返回空字符串
  return contentContainer ? contentContainer.innerHTML.trim() : '';
});

console.log(targetHTML);

结果说明

执行上述代码后,会得到你期望的包含完整标签和属性的内容:

<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer scelerisque, turpis a lobortis fringilla, nulla odio ultrices metus, eu eleifend nibh metus iaculis magna. Praesent vel euismod velit</p>
            <p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer scelerisque, turpis a lobortis fringilla, nulla odio ultrices metus, eu eleifend nibh metus iaculis magna. Praesent vel euismod velit<br>
<img src="/images/imagefile.png"></p>
            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer scelerisque, turpis a lobortis fringilla, nulla odio ultrices metus, eu eleifend nibh metus iaculis magna. Praesent vel euismod velit</p>

如果需要进一步清理格式(比如去除多余缩进),可以在返回前用正则处理:

return contentContainer ? contentContainer.innerHTML.replace(/\s+/g, ' ').trim() : '';

内容的提问来源于stack exchange,提问作者Oli Ver

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 10:35:18