私は主にajaxベースのWebアプリケーションをjspで提供してテストしています。すべてがアプリケーション側で動的に作成/割り当てられます。次のことを実行する必要があるある種のクローラー/スクレーパーを作成しようとしています。
- 特定のWebページで使用可能なすべてのボタン、ドロップダウンなどを「クリック」します
- リクエストごとに、クライアント/サーバーの相互作用を記録します
- 1つのWebページですべてのボタンが押されたら(ha?)、幅優先探索は#2の最初のレコードから始まります
- すべてのレコードが一度操作されるまで続けます。
Pythonは必需品ではありませんが、Pythonを使用してクリックするのは簡単です(Javaには、簡単に機能する可能性のあるものがいくつかあることはわかっています)。
def click(x,y):
win32api.SetCursorPos((x,y))
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,x,y,0,0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,x,y,0,0)
fiddlerなどの録音ソフトウェアを調べました:http ://www.fiddler2.com/fiddler2/
インタラクションを記録する方法はわかりませんが、画面を変更することはできません。たとえば、ページAで、ボタンBがページCに移動し、Bをクリックしたいのですが、Aのままにします(これは単純化されすぎたケースです)
幅優先探索については完全に理解していますが、スクリプト/プログラミング言語(#1から)を使用してWebページをロードする方法はわかりません。
それで、誰かが相互作用を記録する方法を知っていますか(おそらく簡単なBFSのためにそれをキューに入れておく)?そして、誰かがいくつかの記録ソフトウェアからリクエストをロードする方法を知っていますか?
ちなみに、これらすべてを実行するのにかかる時間は重要ではありません。数か月かかる場合でも、それでも問題ありません。
ありがとう。