我几天前才开始学习围棋,所以请耐心等待。:)
我正在从带有goquery. 像这样:
package main
import (
"fmt"
"log"
"github.com/PuerkitoBio/goquery"
)
func ExampleScrape() {
doc, err := goquery.NewDocument("http://lifehacker.com")
if err != nil {
log.Fatal(err)
fmt.Println("fail")
} else {
fmt.Println("got it")
}
h1_text := doc.Find("h1").Text()
fmt.Println(h1_text)
}
func main() {
ExampleScrape()
}
这很好用。我无法弄清楚的是如何将doc.Find("h1").Text()选择转换为数组或切片,以便我可以迭代它们(或者,更好的是,弄清楚是否goquery有一个函数)。我确定有办法做到这一点,对吗?
我尝试这样做(内部func ExampleScrape):
var x []string
doc.Find("h1").Each(func(i int, s *goquery.Selection) {
append(x, s.Text())
})
但它不起作用,因为append在“嵌套”/闭包函数中仍然是该函数的本地函数——它不会返回到func ExampleScrape. 然后我尝试了这个:
x := doc.Find("h1").Each(func(i int, s *goquery.Selection) {
return s.Text()
})
for _, i := range x {
fmt.Println(x)
}
但*goquery.Selection类型不能跨越。
有没有办法*goquery.Selection像这样迭代's ?
顺便说一下,你们这里的人很棒。我总是被我在这里得到的答案所震撼。如果有人可以解释如何做到这一点,请提前感谢 googolplex。:)
MMTTMM
相关分类