0

Selenium2、Selenium Web ドライバー、および PHP バインディング スクリプトを使用する、複雑なスクリーン スクレイピング スクリプトを作成しました。そのため、最終的には、Selenium を駆動する PHP スクリプトを作成し、次に URL を取得します。 、いくつかのJavascriptを解析し、フォームに記入し、何とか何とか何とかして、最終的に私が求めているHTMLを返します. それはすべて私のローカル コンピューター上で (開発および概念実証環境として) うまく機能します。

そう。

本番環境では、このスクリプトを毎日 3 回自動的に実行する必要があります。サーバー上ですべてをセットアップする方が良いかどうかを判断しようとしています (つまり、Linux 用の Firefox、次に Java、次に Selenium2 などを実行する方法を理解する... 私にとっては些細なことではありません;くそー、ジム、私はコーダーであり、システム管理者ではありません!)、または、 Sauce Labs の OnDemand のようなサードパーティの Selenium テスト サービス、またはこれらの他のクラウドベースの Selenium サービスのいずれかを使用できるかどうか.

これらのサードパーティのソリューションは、すべて「単体テスト」用に設定されているように見えますが、これは私が行っていることではありません。私はそのこと、PHPUnitの使用、ビルドでのテストなどについて知りません。単純な PHP スクリプトを 1 日 3 回実行し、Selenium と通信してブラウザーを駆動し、画面のスクレイピングを行いたいだけです。

これらのサードパーティのソリューションの 1 つは、私が達成しようとしていることに対して良いアイデアですか、それとも私の (比較的単純な) 目標からやり過ぎ/遠すぎますか?

4

1 に答える 1

1

まず、Ruby で Selenium を使用していることをお知らせしたいので、php スクリプトを実行すると、selenium webdriver が起動し、テストが実行されると想定しています。 sysadmin マスターである必要があります。

Linux には、cron と呼ばれる非常に安定した堅牢なコマンドがあり、これを使用する必要があります。毎日/毎時間/何でも発生するようにアクションをスケジュールできます。

最初に行うことは、スクリプトを含むディレクトリに移動することです。あなたのスクリプトをscript.phpと呼びます。まず、スクリプトの一番上の行が次のようになっていることを確認します。

#!/usr/bin/php

ディレクトリで次のコマンドを実行して、システムがファイルにアクセスできるようにします。

chmod +x script.php

次のコマンドを使用して cron ジョブを設定します。

crontab -e

次に、あなたの仕事に入れます:

00 4,12,20 * * * /home/sean/script.php

00 - 00 分を意味します。

4,12,20 - 時間です (24 時間時計です)。

1回目:*~毎日

2回目:*~毎月

3 番目: * - 毎日の曜日

したがって、このスクリプトは毎日、毎週、毎月、正午と午後 8 時に実行されます。

明らかに、ディレクトリをシステム上のスクリプトに変更し、スクレイピングを実行したいときに時間を設定します。

これが役立つことを願っています!

-java/firefox用の追記-

まず、私はRubyを使用しているので、これをすべて塩で考えてください:)

java/firefox を実行することはできますが、おそらくセレンをスタンドアロンで取得したいと思うでしょう。ここでつかむことができます。

次に、セレンサーバーを実行するには、次のようにします。

java -jar selenium-server-standalone-2.5.0.jar

cron ジョブで開始するスタンドアロン サーバーの put を実行し、スクリプト ファイルでそれを閉じることができます。

于 2011-09-04T04:11:53.230 に答える