0

我正在使用 gocolly 学习网络抓取。当我尝试使用选择器名称查找标签时body,它成功找到了它。但是,当我尝试通过 xpath 找到 body 标记时/html/body,它找不到它。

我使用了 OnHTML() 和一个简单的回调函数:

collector.OnHTML("/html/body", func(element *colly.HTMLElement) {

    fmt.Println("Found Body")

})

知道为什么会这样吗?

另外,在查看教程时,我注意到传递给函数 OnHTML() 的选择器有时被 ""(双引号)包裹,有时被 ``(反引号)包裹。两者有区别吗?

如何搜索 ID 元素,因为当我尝试在正文下搜索 ID #layout-container 时,Colly 找不到它:

collector.OnHTML("#layout-container", func(element *colly.HTMLElement) { 

    fmt.Println("Found Layout Container") 

})

提前致谢!

4

1 回答 1

1

从 HTML 的角度来看,/html使用 OnHTML 时已经隐含了该部分。

您可以将与OnXML()一起使用/html/body,如 中所示(函数将在 xpath Query 参数匹配的每个 XML 元素上执行)colly_test.go

使用 OnHTML的测试仅显示“ body”。

于 2021-04-16T06:31:25.590 回答