2016-06-15 7 views
2

私は最近Selenium Pythonスクレイパーを完成させました。私の個人的なマシンでそれを実行すると完全に正常に動作しますが、結果をサーバー上で実行すると同じではありません。サーバーでは私はpyvirtualdisplayローカルマシンで動作しているため、セレンはサーバー上で動作していません

browser.get('https://example.com') 
html = browser.page_source 

を使用してヘッドレスを実行していますそしてこれはpyvirtualdisplayのための私のコードです。

display = Display(visible=0, size=(800, 600)) 
display.start() 

ローカルマシン上で実行している間は、それは完全にはJavaScriptによって生成されるが、私は私のサーバー上でそれを実行すると、それにはJavaScriptによって生成されたHTMLコンテンツをつかむしないHTMLをつかむので、私は唯一で終わりますJS生成コンテンツのない部分ページ。

更新: 私はまた、Seleniumを使用した提案に従ってスクリーンショットを撮りました。 Screenshotは、ページが部分的にロードされ、JSによるコンテンツが画面にロードされていないことを示しています。

+0

「ブラウザ」はどのように定義されていますか?ありがとう。 – alecxe

+0

@alecxe 'browser = webdriver.Firefox()' – abhanan93

+0

サーバ上で、実際のGUIまたはフレームバッファ(ヘッドレス)で動作していますか? –

答えて

1

OSやブラウザの設定に問題があるようです。まず、フレームバッファ内の結果をスクリーンショットし、firefoxがJSコンテンツを適切にロードしていることを確認します。そうでない場合は、ブラウザ/ OS設定を確認する必要があります。

pyvirtualdisplayあなたはspecflowも、スクリーンショット、説明書here

それは、Firefox /ブラウザの問題である場合は、あなたがすべての適切なプラグインをインストールしていることを確認することができますhere

で見ることができるスクリーンショットの方法を持っていますあなたのサーバーでjavascriptを実行するためにJavaが必要でした。そのブラウザでjavascriptが有効になっていることを確認してください。

+0

私はUbuntuサーバーも持っています。初めてこのサーバーでスクリプトをテストしたが、完璧に機能していた。しかし、スクリプトをやり直すと、CentOSサーバーのように同じ問題が発生しませんでした。そして、CentOSサーバーでは、一度も動作しませんでした。 スクリーンショットを推薦いただきありがとうございます。私はそれらを調べて、あなたに通知します。 – abhanan93

+0

あなたが示唆したように、私もスクリーンショットを撮りました。スクリーンショットは、ページが部分的に読み込まれ、JSによるコンテンツが読み込まれていないことを示します。 – abhanan93

+0

@ abhanan93したがって問題はセレンではありません。そのOS、フレームバッファ、またはブラウザ –

関連する問題