【发布时间】:2022-01-15 17:51:43
【问题描述】:
我需要使用 chrome 开发工具协议来检索 html,但我遇到了总和问题,并且行为不是预期的那样
我正在使用 https://chromedevtools.github.io/devtools-protocol/tot/DOM/#method-getOuterHTML 和 PyChromeDevTools 来管理 chrome 页面
从终端
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222
python 脚本
import PyChromeDevTools
chrome = PyChromeDevTools.ChromeInterface(host='localhost',port=9222)
chrome.Network.enable()
chrome.Page.enable()
chrome.Page.navigate(url="https://stackoverflow.com")
html_code=chrome.DOM.getOuterHTML()
print(html_code)
我不确定 DOM.getOuterHTML 是否是正确的命令,但似乎适合此目的
【问题讨论】:
-
添加
DOM.getDocument() -
你应该使用
chrome.wait_event("Page.loadEventFired", timeout=60) -
@Juraj 谢谢,已解决!所以它可能改为执行一些javascript代码?我正在尝试这种方法; chromedevtools.github.io/devtools-protocol/tot/Runtime/…
-
是的,与页面的大部分交互都可以通过执行 javascript 来完成。我必须学习 DOM 接口才能将文件放入文件输入中。我将协议与 Java 库一起使用,它的工作方式可能与 python 库不同。你在没有 DOM.getDocument() 的情况下尝试过吗?是不是等待页面加载不够?
-
是的,我忘了设置等待事件超时,所以对于 html 来说,使用命令 DOM.getDocument() 对页面进行充电之前它可以工作。你有在 java 中执行 js 的例子吗?
标签: python html google-chrome-devtools chrome-devtools-protocol