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

如何用Go Colly提取嵌套div内p标签的文本内容?

解决Colly爬虫提取指定p标签文本并写入CSV的问题

你的问题出在没有精准定位到目标p标签,按照你描述的HTML结构,目标p是在.css-1nrl4q4的子div下面,直接用ChildText("p")要么会把所有p的文本合并,要么可能匹配不到正确层级的标签。

修正后的代码示例

c.OnHTML(".css-1nrl4q4", func(e *colly.HTMLElement) {
    // 分别获取子div下的第一个和第二个p标签文本
    p1 := e.ChildText("div > p:nth-child(1)")
    p2 := e.ChildText("div > p:nth-child(2)")
    
    // 写入CSV,两个p的文本作为独立列
    writer.Write([]string{p1, p2})
})

代码说明

  • div > p:nth-child(1):精准匹配.css-1nrl4q4下直接子div里的第一个p标签
  • div > p:nth-child(2):匹配该子div里的第二个p标签
  • 如果子div是.css-1nrl4q4下的唯一子div,这种写法可以准确抓取到两个目标文本,不会出现文本合并或匹配错误的问题

如果你想更严谨地先定位子div再取p,也可以这么写:

c.OnHTML(".css-1nrl4q4 div", func(e *colly.HTMLElement) {
    p1 := e.ChildText("p:nth-child(1)")
    p2 := e.ChildText("p:nth-child(2)")
    writer.Write([]string{p1, p2})
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 19:57:25