我需要阅读动态生成的页面的内容 阿贾克斯 从带有此代码的网站 高朗,它适用于非 ajax 页面,但我找不到执行此操作的包或示例。谢谢。package mainimport( "fmt" "time" "net/http" "github.com/PuerkitoBio/goquery" "strings" "strconv")func main() { var masterURI [1]string masterURI[0] = "http://uri1" /*masterURI[1] = "http://uri2" masterURI[2] = "http://uri3"*/ for _, uri := range masterURI { doc, err := extractHTML(uri) check(err) search := doc.Find(".pagination li a span").Eq(-1) numPages, err := strconv.Atoi(search.Text()) check(err) var i int for i = 1; i <= numPages; i++ { page := uri + "#/page-" + strconv.Itoa(i) fmt.Println("\n========> " + page) doc, err := extractHTML(page) check(err) search := doc.Find(".product-name") for i := range search.Nodes { product := strings.TrimSpace(search.Eq(i).Text()) fmt.Println(product) // use `single` as a selection of 1 node } } fmt.Println(" --- ") }}func extractHTML(url string) (doc *goquery.Document, err error) { userAgent := "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36 OPR/32.0.1948.69"; trans := &http.Transport{ DisableKeepAlives: true, } timeout := time.Duration(600 * time.Second) myClient := &http.Client{Transport: trans, Timeout: timeout} req, err := http.NewRequest("GET", url, nil) check(err) req.Header.Add("User-Agent", userAgent) resp, err := myClient.Do(req) req.Close = true check(err) if resp.StatusCode == 200 { doc, err = goquery.NewDocumentFromResponse(resp) } check(err) resp.Body.Close() return doc, err}func check(err error) { if err != nil { panic(err) }}
1 回答

扬帆大鱼
TA贡献1799条经验 获得超9个赞
由于有些人对您的回答投了反对票,因此我会尽力为您指出正确的方向。
你不在 Go 中执行 javascript。您通常在浏览器中使用开发工具(F12 或其他工具)执行此操作,查看网络选项卡以查看正在调用哪个 URL,然后在代码中调用该URL。
没有找到匹配的内容?试试慕课网站内搜索吧
- 1 回答
- 0 关注
- 204 浏览
添加回答
举报
0/150
提交
取消