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

使用Puppeteer配合Cheerio提取指定HTML中链接的问题求助

解决方案

问题原因

你之前的Cheerio代码无输出是因为语法使用错误:Cheerio封装的DOM对象不支持原生JS的innerHTML/outerHTML属性,需要调用Cheerio提供的API方法读取内容、属性。

方案1:Chrome开发者工具原生JS实现

直接选择对应元素提取href属性即可,无需处理冗余文本:

// 提取首图链接
const coverImgUrl = document.querySelector('a.mfp-image').href
// 提取所有下载链接,自动适配N个链接的场景
const downloadUrls = Array.from(document.querySelectorAll('div.blockSpoiler-content.txtleft.c-dl-links a')).map(item => item.href)

// 输出结果
console.log('首图链接:', coverImgUrl)
console.log('所有下载链接:', downloadUrls)

方案2:Puppeteer + Cheerio 实现

// 先等待目标元素加载完成,避免动态渲染页面拿不到内容
await page.waitForSelector('div.blockSpoiler-content.txtleft.c-dl-links a')
const html = await page.content()
const $ = cheerio.load(html)

// 提取首图链接
const coverImgUrl = $('a.mfp-image').attr('href')
// 提取所有下载链接
const downloadUrls = $('div.blockSpoiler-content.txtleft.c-dl-links a').map((index, element) => {
  return $(element).attr('href')
}).get()

// 输出结果
console.log('首图链接:', coverImgUrl)
console.log('所有下载链接:', downloadUrls)

最终得到的downloadUrls是包含所有下载链接的数组,不管页面有多少个下载链接都可以完整提取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:54:04