我正在使用 Requests模块向网站发送 GET
和 POST
请求,然后处理它们的响应。如果 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/