go colly库能否抓取div标签下的所有HTML标签和文本内容?如果是,如何?我可以获取div标签下的所有文本。像这样:
c.OnHTML("body .post-topic-main .post-topic-des", func(e *colly.HTMLElement) {
text = strings.TrimSpace(e.Text)
})
但是我不知道如何在div标记下获得HTML标记。
如果您正在查找innerHTML
,则DOM
可以使用Html
方法(e.DOM.Html()
(访问它。
c.OnHTML("body .post-topic-main .post-topic-des", func(e *colly.HTMLElement) {
html, _ := e.DOM.Html()
log.Println(html)
})
如果您在founded元素下查找特殊标记,ForEach
可以用于此目的。第一个参数是选择器,第二个参数是回调函数。回调函数将对每个与选择器匹配并且也是e
元素成员的元素进行迭代。
更多信息:https://pkg.go.dev/github.com/gocolly/colly@v1.2.0#HTMLElement.ForEach
c.OnHTML("body .post-topic-main .post-topic-des", func(e *colly.HTMLElement) {
text := strings.TrimSpace(e.Text)
log.Println(text)
e.ForEach("div", func(_ int, el *colly.HTMLElement) {
text := strings.TrimSpace(e.Text)
log.Println(text)
})
})