为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Golang 请求中执行 javascript 异步代码

如何在 Golang 请求中执行 javascript 异步代码

Go
12345678_0001 2021-11-15 20:54:40
我需要阅读动态生成的页面的内容 阿贾克斯 从带有此代码的网站 高朗,它适用于非 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。


查看完整回答
反对 回复 2021-11-15

添加回答

代码语言

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号