2017-06-15 5 views
2

ウェブサイトからデータ/フォームを取得すると、機械化とセレンがすべて失敗しました。ウェブページを取得していますが、ページコンテンツを表示するにはjavascriptが必要です

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

スクリプトは以下のようになります。

機械化出力:

はので、私は多分私はjsファイルを実行するためにセレンができると思い

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> 

セレン、 like

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() 

が、私は再び失敗したが、結果はほぼ同じである:

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

私はちょうど右のサイトからコンテンツ/フォーム、およびsubmitまたはpostデータ/フォームへを取得したいですサーバーは、Webブラウザーの行動をシミュレートします。

私は今、アイデアがありません。セレンがどのように作用し、助けを待っているのか、よく分かりません。

+0

申し訳ありませんが、URLを忘れてしまった、URLは 'HTTPSです:?//onlineservices.immigration.govt.nz/ WHS' – tim

+0

あなたはthis..profile = webdriver.FirefoxProfile()..プロファイルを追加してみてくださいすることができます.set_preference( "javascript.enabled"、True..broswer = webdriver.Firefox(profile) –

+0

私がページにアクセスすると、人間以外の訪問者を防ぐための画像コードが表示されます。そのデータは – codeiscool

答えて

0

お試しください:
以下のプロファイルを使用してフラッシュを有効にしてください。

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) 

、それはまだ代わりのFirefoxの使用chromedriver動作しない場合は、デフォルトでchromedriverで動作しているようです。

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

関連する問題