6

modülünü kullanarak web sitelerine GET ve POST istekleri göndermek ve yanıtlarını işlemek için kullanıyorum. Response.text belirli bir kriteri karşılarsa, bir tarayıcıda açılmasını istiyorum. Bunu yapmak için şu anda selenium paketini kullanıyorum ve web sayfası için selenium webdriver ile isteği yeniden gönderiyorum. Ancak, yanıtı bir kez daha elde ettiğim için verimsiz olduğunu düşünüyorum, bu yüzden elde edilen Response nesnesini doğrudan selenyum ile açılan tarayıcıya yerleştirmenin bir yolu var mı? Aklıma gelenSelenium webdriver (tarayıcı) içinde HTTP Yanıtı (HTML içeriği) Render

DÜZENLEME bir hacky yolu geçici bir dosyaya response.text yazmak ve tarayıcıda olduğu açmaktır. Bunu yapmanın daha iyi bir yolu varsa lütfen bana bildirin?

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) 

Yoksa senaryonun bir parçası ile sayfayı yazabiliriz:

+0

Kısa cevap yok hayır. Uzun cevap, denediğin gibi rahatsız edici yollar var ama neden rahatsızsın? Bütün bu çabalarla ne kazanıyorsunuz? – e4c5

+0

@ e4c5 dediğim gibi, selenyumda yalnızca yanıtı belirli bir koşulla karşılıyorsa bir sayfa yanıtı açmak istiyorum, eğer tarayıcımdaki tüm istekleri gereksiz yanıtlar nedeniyle daha yavaş hale getirecek olursam tarayıcının görüntülenmesi – bawejakunal

+1

Neden bir tarayıcıda açılıyor? –

cevap

5

doğrudan Selenyum ile bazı HTML işlemek için olsun yöntemi ile veri şema kullanabilirsiniz

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)