gpt4 book ai didi

javascript - 使用 chromedp,从 *runtime.RemoteObject 中获取一个 javascript 对象/数组

转载 作者:数据小太阳 更新时间:2023-10-29 03:09:11 29 4
gpt4 key购买 nike

我正在使用 chromedp,我想获取在我滚动的页面内声明的 javascript 数组的内容

<script>
var title = document.title;
var pages = [{"key1":"value1","key2":1,"external":1},{"key1":"value2", "key2":9}];
</script>

我试过了

var res *runtime.RemoteObject
if err := c.Run(ctxt, chromedp.EvaluateAsDevTools("pages", &res)); err != nil {
return fmt.Errorf("could not evaluate page : %v", err)
}

json_byte, _ := res.MarshalJSON()
var out bytes.Buffer
_ = json.Indent(&out, json_byte, "", "\t")

log.Printf("pages %s ", out.String())

但它给了我类似的东西

2019/03/08 13:12:52 pages {
"type": "object",
"subtype": "array",
"className": "Array",
"description": "Array(22)",
"objectId": "{\"injectedScriptId\":441,\"id\":1}"
}

我希望能够获取可变页面的实际内容(键和值)。获取此内容的方式是什么?

最佳答案

发现将选项/函数 chromedp.EvalAsValue 添加到 eval 就可以了:

if err := c.Run(ctxt, chromedp.EvaluateAsDevTools("pages", &res, chromedp.EvalAsValue)); err != nil {
return fmt.Errorf("could not evaluate page : %v", err)
}

结果是评价的值(value),不是总结。

关于javascript - 使用 chromedp,从 *runtime.RemoteObject 中获取一个 javascript 对象/数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55063278/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com