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

如何使用Puppeteer-Sharp提取指定class属性div内的所有链接

解决方案

你只需要调整传入的JS选择器,限定只匹配指定类名div下的a标签即可,操作逻辑和你现有写法完全兼容:
把你原来的选择器document.querySelectorAll('a')替换为document.querySelectorAll('.你的目标类名 a')即可,这里的.你的目标类名要替换成你实际要匹配的div的类名,比如你要找类名为content-wrap的div内的链接,写法如下:

// 替换示例中的content-wrap为你实际要匹配的div类名即可
var jsSelectAnchorsInTargetDiv = @"Array.from(document.querySelectorAll('.content-wrap a')).map(a => a.href);";
var urls = await page.EvaluateExpressionAsync<string[]>(jsSelectAnchorsInTargetDiv);

如果有更复杂的匹配需求,可以按规则调整选择器:

  • 匹配同时有classA和classB的div内的链接:选择器写.classA.classB a
  • 匹配id为main的容器内、类名content的div内的链接:选择器写#main .content a

如果不想写JS表达式,也可以用PuppeteerSharp原生API实现:

// 先获取所有符合类名要求的div元素
var targetDivs = await page.QuerySelectorAllAsync(".content-wrap");
List<string> urls = new List<string>();
foreach(var div in targetDivs)
{
    // 逐个获取当前div内的a标签
    var anchors = await div.QuerySelectorAllAsync("a");
    foreach(var a in anchors)
    {
        // 提取href属性值
        var href = await a.EvaluateAsync<string>("el => el.href");
        urls.Add(href);
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 01:36:04