神奇的互联网,
我试图使用"github.com/PuerkitoBio/goquery“从html字符串中筛选元素。不幸的是,filter函数没有返回预期的结果。我本想要回一份所有文章的清单,但是.没什么。
package main
import (
"fmt"
"os"
"strings"
"github.com/PuerkitoBio/goquery"
)
var html = `
<section>
<article>
<h1>Article 1</h1>
<p>Text for article #1</p>
</article>
<article>
<h1>Article 2</h1>
<p>Text for article #2</p>
</article>
</section>
`
func main() {
qHtml, err := goquery.NewDocumentFromReader(strings.NewReader(html))
if err != nil {
panic(err)
}
articles := qHtml.Filter(`article`)
fmt.Println(articles.Nodes)
goquery.Render(os.Stdout, articles)
}发布于 2022-05-11 19:56:31
你试图过滤一个空的选择。
从我在问题中看到的情况来看,您可以简单地将Filter替换为Find。所以在你的情况下应该是:
articles := qHtml.Find("article")有了包含元素的选择之后,就可以使用Filter了。因此,例如,要获得第二篇文章,您可以这样做:
articles := qHtml.Find("article").Filter(":nth-child(2)")要阅读有关Filter的更多信息,请查看以下资源:
PS:您还可以在单个选择器中将其组合为特定于Find的文章
articles := qHtml.Find("article:nth-child(2)")发布于 2022-05-12 04:22:09
https://stackoverflow.com/questions/72191242
复制相似问题