使用github.com/knq/chromedp,一个go
使用 Chrome 调试协议驱动 Web 浏览器的包,我可以导航到网页、更新表单和提交表单,但我需要检索 HTTP 响应正文并且还没有弄清楚如何. 我希望能够检索 JSON 响应(不是 HTML)的 HTTP 响应正文。
通过查看代码,似乎 HTTP 响应正文在CachedResponse.Body
属性中:
并且它应该可以使用:
func (p *RequestCachedResponseParams) Do(ctxt context.Context, h cdp.Handler) (response *CachedResponse, err error)
示例使用cdp.Tasks
如下简单示例。
func googleSearch(q, text string, site, res *string) cdp.Tasks {
var buf []byte
sel := fmt.Sprintf(`//a[text()[contains(., '%s')]]`, text)
return cdp.Tasks{
cdp.Navigate(`https://www.google.com`),
cdp.Sleep(2 * time.Second),
cdp.WaitVisible(`#hplogo`, cdp.ByID),
cdp.SendKeys(`#lst-ib`, q+"\n", cdp.ByID),
cdp.WaitVisible(`#res`, cdp.ByID),
cdp.Text(sel, res),
cdp.Click(sel),
cdp.Sleep(2 * time.Second),
cdp.WaitVisible(`#footer`, cdp.ByQuery),
cdp.WaitNotVisible(`div.v-middle > div.la-ball-clip-rotate`, cdp.ByQuery),
cdp.Location(site),
cdp.Screenshot(`#testimonials`, &buf, cdp.ByID),
cdp.ActionFunc(func(context.Context, cdptypes.Handler) error {
return ioutil.WriteFile("testimonials.png", buf, 0644)
}),
}
}
似乎CachedResponse.Body
可以RequestCachedResponseParams.Do()
通过引用调用来访问RequestCachedResponseParams.CacheID
,但仍然需要以下内容:
- 如何打电话
RequestCachedResponseParams.Do()
-cdp.Tasks
似乎可以使用cdp.ActionFunc()
- 如何访问
RequestCachedResponseParams.CacheID