gpt4 book ai didi

html - GoLang - 带有 HTML 的 XmlPath 选择器

转载 作者:IT王子 更新时间:2023-10-29 01:52:26 29 4
gpt4 key购买 nike

我正在查看文档示例 here ,但它只是遍历 XML 树,而不是 HTML。因此,我仍然有些困惑。

例如,如果我想通过名称在 head 标签中找到特定的 meta 标签,似乎我不能?相反,我需要按照它在 head 标记中的顺序找到它。在这种情况下,我想要第 8 个元标记,我假设它是:

headTag, err := getByID(xmlroot, "/head/meta[8]/")

当然,这是对标签名称使用 getByID 函数 - 我认为这不会起作用。 “getBy...”命令的完整列表是什么?

那么,问题是,我如何访问元标记的内容?该文档仅提供内部标记节点内容的示例。然而,这个例子会起作用吗?:

resp.Query = extractValue(headTag, @content)

@ 选择器让我感到困惑,这适合这种情况吗?

换句话说:

  1. 是否有合适的 HTML 示例可用?
  2. 是否有 ID、标签等的正确选择器列表?
  3. 能否通过名称找到标签,并从其内部内容标签中提取内容?

非常感谢!

最佳答案

我知道这个答案来晚了,但我还是想推荐一个 htmlquery 简单而强大的包,基于 XPath 表达式*。

以下代码基于@Time-Cooper 示例。

package main

import (
"fmt"

"github.com/antchfx/htmlquery"
)

func main() {
doc, err := htmlquery.LoadURL("https://example.com")
if err != nil {
panic(err)
}
s := htmlquery.Find(doc, "//meta[@name='viewport']")
if len(s) == 0 {
fmt.Println("could not find viewpoint")
return
}
fmt.Println(htmlquery.SelectAttr(s[0], "content"))

// alternative method,but simple more.
s2 := htmlquery.FindOne(doc, "//meta[@name='viewport']/@content")
fmt.Println(htmlquery.InnerText(s2))
}

关于html - GoLang - 带有 HTML 的 XmlPath 选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42118194/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com