python - 在 selenium webdriver(浏览器)中呈现 HTTP 响应(HTML 内容)

标签 python google-chrome selenium selenium-webdriver google-chrome-devtools

我正在使用 Requests模块向网站发送 GETPOST 请求,然后处理它们的响应。如果 Response.text 满足特定条件,我希望它在浏览器中打开。为此,我目前正在使用 selenium 包并通过 selenium webdriver 将请求重新发送到网页。但是,我觉得效率很低,因为我已经获得了一次响应,那么有没有办法将这个获得的Response对象直接渲染到通过selenium打开的浏览器中?

编辑 我能想到的一种 hacky 方法是将 response.text 写入临时文件并在浏览器中打开它。请让我知道是否有比这更好的方法?

最佳答案

要使用 Selenium 直接呈现一些 HTML,您可以使用带有 get 方法的数据方案:

from selenium import webdriver
import requests

content = requests.get("http://stackoverflow.com/").content

driver = webdriver.Chrome()
driver.get("data:text/html;charset=utf-8," + content)

或者你可以用一段脚本编写页面:

from selenium import webdriver
import requests

content = requests.get("http://stackoverflow.com/").content

driver = webdriver.Chrome()
driver.execute_script("""
  document.location = 'about:blank';
  document.open();
  document.write(arguments[0]);
  document.close();
  """, content)

关于python - 在 selenium webdriver(浏览器)中呈现 HTTP 响应(HTML 内容),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36785588/

相关文章:

python - Pandas.read_excel 保存后使用旧数据

python - 根据月份和日期范围选择多年的 Pandas DataFrame 记录

python - 将同一对象两次添加到 ManyToManyField

css - Chrome 全屏错误 (flowplayer) - 侧边栏仍然可见

python - 通过 Python 中的网页抓取工具登录网站

python - 实际上,HRD 中的 "eventual consistency"最终是多少?

javascript - 用于新段落文本的 chrome MutationObserver

javascript - 没有响应正文的 OPTIONS 请求上的 Chrome 长 "Content Download"时间

c# - ChromeDriver 窗口不会重新调整大小以适应 Nexus 5 的尺寸

c# - Selenium IEdriver 问题 "WebDriverException : The HTTP request to the remote WebDriver server for URLxxxx timed out after 60 seconds."