6

モジュールを使用して、GETPOSTのリクエストをウェブサイトに送信し、レスポンスを処理しています。 Response.textが特定の基準を満たしていれば、ブラウザで開くことができます。これを行うには、私はseleniumパッケージを使用しており、セレンのwebdriverを介してWebページにリクエストを再送信しています。しかし、私はすでにレスポンスを1回取得しているので効率が悪いと感じています。このため、Responseオブジェクトをセレンを介してブラウザに直接表示する方法がありますか?私は考えることができSelenium webdriver(ブラウザ)でHTTPレスポンス(HTMLコンテンツ)をレンダーする

EDIT ハック方法は、一時ファイルにresponse.textを書いて、ブラウザでそれを開くことです。これよりも良い方法があれば教えてください。

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) 

それとも、スクリプトの一部でページを書くことができ:

+0

短い答えいいえ。長い答えは、あなたがしようとしているもののようなハッキーな方法がありますが、なぜ気になるのですか?あなたはその努力によって何を得るのですか? – e4c5

+0

@ e4c5私が言ったように、レスポンスが一定の条件を満たしている場合にのみ、セレンでページレスポンスを開きたいと思っています。ブラウザがレンダリングされる – bawejakunal

+1

なぜブラウザで開くのですか? –

答えて

5

が直接セレンといくつかのHTMLをレンダリングするには、getメソッドとデータスキームを使用することができます

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) 
関連する問題