2016-12-05 2 views
0

Ich benutze Python mit Selenium und Firefox, um etwas Inhalt zu bekommen. Die Website HTML folgt:Python mit Scrapy und Selen erhalten JavaScript erzeugen Inhalt

<html> 
 
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8"> 
 

 
<body leftmargin="0" topmargin="0" rightmargin="0" bottommargin="0" marginwidth="0" marginheight="0" onResize="resize();" bgcolor="#ffffff"> 
 
    <iframe id="iframe" align="center" width="100%" height="100%" frameborder="0" marginWidth="0" marginHeight="0" src="" style="margin-top:1px;margin-left:1px;"></iframe> 
 
</body> 
 
<script> 
 
    var eventTime = new Date(); 
 

 
    function activeEvent() { 
 
     eventTime = new Date(); 
 
    } 
 

 
    var height = 0; 
 
    var width = 0; 
 
    resize(); 
 

 
    function setTitle(message) { 
 
     document.title = message; 
 
    } 
 

 
    function resize() { 
 
     height = document.body.clientHeight - 2; 
 
     width = document.body.clientWidth - 2; 
 
     if (height < 480) height = 480; 
 
     if (width < 640) width = 640; 
 
     document.getElementById("iframe").height = height; 
 
     document.getElementById("iframe").width = width; 
 
    } 
 
    setInterval("resize()", 1000); 
 
    document.getElementById("iframe").src = "http://xxxxxx.com:80/lhscm/framework/mainform/navui/nav3mainform.do?height=" + height + "&width=" + width; 
 
</script> 
 

 
</html>

Aber mit Selen driver.page_source kann nicht die src Link HTML erzeugt bekommen.
Also, wie kann ich den Inhalt bekommen?

+0

und ich benutze firefox firebug, ich kann die HTML-Elemente bekommen! –

Antwort

0

Der Körper Ihrer Seite scheint vollständig innerhalb eines iframe zu liegen, so dass Sie zu diesem Rahmen wechseln sollten. Versuchen Sie folgendes:

driver.switch_to_frame('iframe') 
source = driver.page_source 
driver.switch_to_default_content() 
+0

Lieber Andersson, ja du antwortest funktioniert, vielen Dank !!! –

+0

Lieber Andersson, und ich habe Anthere Frage, in der js generiert HTML, es haben mehrere Iframe, und alle Rahmen haben nicht ID, Name, wie kann ich wechsle den Rahmen, den ich wollte, vielen Dank !! –

+0

Sie können 'iframe' mit' XPath' verbinden, zum Beispiel, 'driver.switch_to_frame (driver.find_element_by_xpath ('// iframe [@ class =" some_class_name "]')) ' – Andersson

Verwandte Themen