【问题标题】:retrieve html from web page with chrome dev tools使用 chrome 开发工具从网页中检索 html
【发布时间】: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


【解决方案1】:

您必须等到页面在浏览器中加载。您使用的库在 README 中有一个示例。

chrome.Page.navigate(url="http://www.google.com/")
chrome.wait_event("Page.loadEventFired", timeout=60)

DOM 接口在访问元素之前可能需要chrome.DOM.getDocument()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-24
    • 2013-12-16
    • 1970-01-01
    相关资源
    最近更新 更多