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标签.
发布于 2022-04-07 13:22:38
如果您寻找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)
})
如果您在已创建元素下寻找特殊标记,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)
})
})
https://stackoverflow.com/questions/71779764
复制