3

Web サイトでフォームに入力する必要があるが、API にアクセスできないユース ケースがあります。現在、ブラウザと一緒に webdriver を使用していますが、プロセスが非同期であるため、非常に重くなり、フールプルーフではありません。保留中のリクエストを注意深く監視することで、ブラウザなしでプロセスを同期させる方法はありますか?

Casperjs と htmlunitdriver は、私が持っている最良のオプションのようです。誰かがメンテナンス、フェイルプルーフ、軽量の点で長所または短所を説明できますか?

複雑でさまざまな種類の Web ページをナビゲートする必要があります。ナビゲートしたい Web ページのいくつかは、JS を多用したものです。

この目的で Scrapy を使用できますか?

4

2 に答える 2

5

Htmlunitdriverを使用します。失敗しないようにするために、それに応じていくつかの変更を加える必要がありますが、ブラウザなしで動作します。

于 2012-12-14T06:25:27.687 に答える
2

まあ、私はこれを行うためのさまざまな方法で作業してきましたが、システムをどれだけインテリジェント/高度にしたいかによって異なります。私はルビーを使用していますが、ルビーでは非常に簡単です。その下には、私が最も有用だと思ったメソッドがリストされています(かなりルビーに偏っているため):

  • 機械化(ここにあります): 超軽量、超高速、超信頼性。JS を除いて、ブラウザーが行うすべてのことを処理します。内部的には、open-uri + XML パーサーであり、上に素敵なインターフェイス レイヤーがあり、少しスパイスが効いています。ドキュメントのチュートリアルを確認してください。Pythonなどでも利用できると思います。
  • Poltergeist (ここにあります): 高速で本物のブラウザーのような動作、かなり信頼性が高く、軽量で、JS をサポートしています。内部的には、カピバラ用のファントム js 駆動のブラウザーです (ただし、厄介な依存関係はすべてなく、完全にヘッドレスです)。たとえば rspec を使用したテスト用にビルドされていますが、他の方法で簡単に使用したり、スタンドアロンとして Google を検索したりするだけです。
  • Watir-webdriver (ここにあります): firefox、IE、chrome、safari などの REAL ブラウザーを駆動するための超強力なライブラリー。実際、かなり安定しています。ただし、実際の物理画面が接続されていない場合 (サーバーなど)、xvfb を実行して、ブラウザーの出力をマップする必要があります。これは、ここでも言及されている headless gem を使用して非常に簡単に実行できます

つまり、JS のサポートが必要ない場合は、機械化を使用してください。

于 2012-12-19T09:16:03.807 に答える