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

使用Cheerio筛选指定类名div提取img的title属性失败如何解决?

问题原因

你写法存在语法错误:已经通过cheerio.load(html)将页面源码挂载到$实例后,选择元素不需要额外传第二个参数html作为上下文,多余的参数会导致选择逻辑异常,匹配不到目标元素。

修复后的实现代码

const axios = require('axios');
const cheerio = require('cheerio');

axios.get("https://cryptoradar.co/exchanges")
    .then(response => {
        const html = response.data;
        const $ = cheerio.load(html);
        // 直接用类选择器筛选所有目标div,不需要写完整层级
        $('.exchange-card-small-logo').each(function () {
            // 提取该div下a>img的title属性
            const imgTitle = $(this).find('a > img').attr('title');
            if(imgTitle) {
                console.log(imgTitle);
            }
        });
    })
    .catch(err => console.log('请求出错:', err));

附加说明

如果修改后仍然匹配不到元素,说明该类元素是页面加载后通过客户端JS动态渲染生成的,axios直接请求拿到的初始HTML源码里不存在该元素。这种场景下你需要使用Puppeteer、Playwright之类的无头浏览器工具,等待页面JS执行完成渲染出元素后再做提取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 01:36:01