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

如何使用goquery或CSS选择器提取指定div下的所有<p>标签

用goquery和CSS选择器提取所有目标

标签

先看你的示例HTML结构:

<div class="myClass"> 
    <div> 
        <div> 
            <p>1</p> 
        </div> 
    </div> 
        <p>2</p> 
    <div> 
    </div> 
    <p>3</p> 
</div>

一、纯CSS选择器方案

要提取div.myClass下所有层级的

标签,直接用后代选择器就行:

div.myClass p

这个选择器会匹配该class下所有嵌套层级的

元素,正好覆盖你要的3个标签。

二、结合goquery的代码实现

用goquery的话,核心就是用上面的选择器定位元素,然后遍历提取内容:

package main

import (
	"fmt"
	"strings"

	"github.com/PuerkitoBio/goquery"
)

func main() {
	// 示例HTML内容
	htmlContent := `
<div class="myClass"> 
    <div> 
        <div> 
            <p>1</p> 
        </div> 
    </div> 
        <p>2</p> 
    <div> 
    </div> 
    <p>3</p> 
</div>
`

	// 加载HTML到goquery文档
	doc, err := goquery.NewDocumentFromReader(strings.NewReader(htmlContent))
	if err != nil {
		fmt.Println("加载HTML出错:", err)
		return
	}

	// 用指定选择器找到所有p标签并遍历处理
	doc.Find("div.myClass p").Each(func(index int, sel *goquery.Selection) {
		pText := sel.Text()
		fmt.Printf("第%d个p标签:%s\n", index+1, pText)
	})
}

这段代码会输出三个

标签的内容,完全符合需求。

内容的提问来源于stack exchange,提问作者David Meléndez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 03:26:11