私は頻繁に Web スクレイピング アルゴリズムの作成を任されています。私がこれまで行ってきた方法は、スクレイピング コードに対して直接行っているため、各ツール ページが固有のものになっています。
ユーザーがスクレイピングの実行シーケンスを動的に定義できるように、ブラウザー用のプラグイン (できれば JavaScript) を作成したいと思います (後で実際のスクレイピングのために解釈および実行されるスクリプトを記録します)。
アイデアは次のとおりです。
- ユーザーはスクレイピングしたいページを開き、任意の場所を右クリックして「記録を開始」をクリックします。これにより、アドオンが「アクティブ化」され、ページの URL が「記録ファイル」に保存されます。
- ユーザーがクリック/入力/変更する必要があるすべての要素を右クリックすると、要素固有のオプションのセットが表示されます。アドオンは、これらの選択されたオプションを順番に保存します。
- ボタンをクリックできます。
- 編集は、単一の特定の文字列で埋めるか、ファイルからの文字列のリストでループスクレイピングすることができます。
- リストは、リスト内の各アイテム、またはファイルのリストに一致するアイテムに対してループスクレイピングできます。
- 等...
記録が完了したら、ユーザーは任意の場所を右クリックして「記録の停止」をクリックするだけで、必要なスクレイピング アクションを含むスクリプトのようなファイルが作成されます。
その後、実際のスクレイピング アプリケーションが引き継ぎ (自動または手動で開始)、記録されたファイルを読み取り、記述されたアクションを実行し、結果のページを保存します。
これらの結果のページは、より簡単にコーディングされたページ固有のアルゴリズムによって後で解析できます。
言うは易く行うは難しであることは承知していますが、コーディングは可能であると確信しています。「サブステップ」を理解するのに助けが欲しい:
- 「ブラウザの (+要素の) コンテキスト メニューに新しいオプションを表示する方法は?」
- 「どの要素が右クリックされたかを知る方法は?」
- 「アドオンからファイルを書き込む方法は?」
- 等...
これらの質問のいくつかは以前に尋ねられたことがありますが、それらのほとんどは別の文脈にあります。つまり、クリックされた要素が既にわかっていて、クリック後に関数を実行したいというコンテキストです。ここではそうではありません。