2017-10-31 13 views
4

私のプロジェクトにSelenium PhantomJSDriverを使用して、複数の公開Webサイト(カヤックやスカイスキャナーのようなもの)へのWebスクレイピングを行う予定です。だから私のバックエンドがPhantomJSを起動して複数のウェブサイトを掻き集め、最終的には操作されたJSONを返すREST GETエンドポイントが存在します。Selenium PhantomJSDriverの制限Web Scraping on Scale

私はPhantomJSインスタンスが要求が入ってきたときに起動する必要がありますように聞こえるようPhantomJSがいかにスケーラブル知りたい。

答えて

3

私が実装.Hope中にこのことに気づいファントムJSの長所と短所を見つけてください。助けてください。

短所:

1)It will fail to recognize the browser elements like id,xpath,csselector 
when compared to chrome driver. 
2)If you have login mechanism ,redirects won't work as you expect when compared to chrome driver. 
3)You need to manually implement the custom logic for screen shots for the test failures if you need it. 
4)If you want to switch between multiple drivers like chrome,html etc then it is very difficult 

長所:あなたも、それは独自の制限があり、非常に高速ファントムそしてれるだけでなく、HTMLのドライバで行くことができ

1)Test case execution is faster when compared to chrome driver 
2)No browser is required it will run without GUI. 
3)No much configurations are needed when compared to chromedriver. 

あなたは実装の前に世話をする必要があります。

+0

それはid属性を認識できないのですか?パフォーマンスの問題についても共有できますか?上記の私のユースケースでは実現可能ですか? – user1955934

+0

ほとんどの場合、id.Performanceの認識に失敗します。プロジェクトの大きさとコードのビジネスロジックの程度によって異なります。巨大であれば、Chromeのドライバに比べて非常に貧弱です。 – Pradeep

+0

私は、あなたがウェブサービスの呼び出しをしてから応答を得ることは、アサーションのために想像ではかなり時間がかかりますので、クロムと一緒に行くことをお勧めします。コードを見ずに言うのは大変です。 – Pradeep

1

ヘッドレスクロムについてお考えですか? Headless Chrome

+0

私はこれについて知っているが、これはまだ安定しているとは思わない。 – Pradeep

+0

hmmはい、質問は同じだが、リクエストが来るたびにヘッドレスクロームを開始する予定の多数のリクエストに対応することは可能だろうか? – user1955934

2

本当にPhantomJSを使用する必要があるかどうかはわかりません。

Chromeは数ヶ月前に「ヘッドレス」モードを実装しました。 「ヘッドレスクロム」はPhantomJSと同じ仕事をしてくれます。 PhantomJSの著者は、もはやそれをサポートしないということさえ聞いていました。

あなただけのライン上にセレン化にヘッドレスモードを有効にすることができます。

Configuration.headless = true; 
+0

私はこのようなワークフローを掻くためにヘッドレスブラウザを使用することが可能かどうかを調べようとしています。私はヘッドレスでないクロムを試してみましたが、ブラウザアプリを実際に起動して、ウェブサイトに行ってデータを掻き集めなければならないので、htmlunitに比べて非常に遅いです...何百万というウェブサイトを掻き集めるリクエストがあればどうしますか? – user1955934