2017-06-15 6 views
2

Abrufen von Daten/Formular von einer Website, versuchte ich Mechanisieren und Selen, alle fehlgeschlagen.Abrufen der Webseite, aber benötigen Javascript, um den Seiteninhalt anzuzeigen

mechanisieren

das Skript sieht aus wie die unten,

import sys 
import mechanize 
url ='xxx' 
response2=br.open(url) 
request = br.request 
print (response2.info()) 
print (response2.read()) 

Ausgang:

Cache-Control: no-store, must-revalidate, no-cache, max-age=0 
Content-Type: text/html 
Connection: close 
Vary: Accept-Encoding 
Pragma: no-cache 
Expires: -1 
CacheControl: no-cache 
X-UA-Compatible: IE=edge 
Content-Type: text/html; charset=utf-8 

... more content ... 

<noscript>Please enable JavaScript to view the page content.</noscript> 
</head><body> 
</body></html> 

Selen

so denke ich, vielleicht kann ich Selen js laufen, wie

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 

driver = webdriver.Firefox() 
url= 'xxx' 
driver.get(url) 

print driver.context 
print driver.title 

print driver.page_source 
driver.close() 

aber ich nicht wieder, das Ergebnis ist fast das gleiche:

... 
<noscript>Please enable JavaScript to view the page content.</noscript> 
... 

Ich möchte nur die richtigen Inhalte/Form von der Website holen, und submit oder post der Daten/Formular Server, um einen Webbrowser zu simulieren, der die Aktion besucht.

Ich habe keine Ideen jetzt, ich weiß nicht sehr viel wie Selen arbeiten, und warte auf Ihre Hilfe, danke im Voraus.

+0

sorry, die URL vergessen haben, ist url 'https: //onlineservices.immigration.govt.nz/ WHS' – tim

+0

können Sie versuchen, das Hinzufügen this..profile = webdriver.FirefoxProfile() .. Profil .set_preference ("javascript.enabled", True..broswer = webdriver.Firefox (Profil) –

+0

Wenn ich die Seite besuche, zeigen sie mir einen Bildcode, um nicht-menschliche Besucher zu verhindern. Offensichtlich wollen sie nicht, dass Sie sie holen die Daten – codeiscool

Antwort

0

Versuchen Sie Folgendes:
Aktivieren Sie Flash mit dem folgenden Profil.

from selenium.webdriver.firefox.firefox_profile import FirefoxProfile 

firefoxProfile = FirefoxProfile() 

## Enable Flash 

firefoxProfile.set_preference('dom.ipc.plugins.enabled.libflashplayer.so', 
          'true') 

driver = webdriver.Firefox(firefoxProfile) 

Wenn es immer noch nicht Gebrauch chromedriver statt Firefox arbeiten, so scheint es in chromedriver standardmäßig zu arbeiten.

https://chromedriver.storage.googleapis.com/index.html?path=2.30/

Verwandte Themen