8

Greasemonkey を使用してサイトをクロールしたいのですが、値を一時的に保存するには、GM_setValue を使用するよりも良い方法があるのではないかと考えています。

私がやりたいことは、ソーシャル ネットワークで連絡先をクロールし、プロフィール ページから Twitter の URL を抽出することです。

私の現在の計画は、各プロファイルを独自のタブで開くことです。これにより、通常の閲覧者のように見えます (つまり、css、スクリプト、画像はブラウザーによって読み込まれます)。次に、GM_setValue を使用して Twitter の URL を保存します。すべてのプロファイル ページがクロールされたら、保存された値を使用してページを作成します。

ただし、ストレージオプションにはあまり満足していません。多分もっと良い方法がありますか?

ユーザー プロファイルを現在のページに挿入して、同じスクリプト インスタンスでそれらをすべて処理できるようにすることを検討しましたが、XMLHttpRequest が通常のユーザーが開始した要求と区別できないように見えるかどうかはわかりません。

4

5 に答える 5

4

Web サイトから大量の (請求明細データ) を取得し、それを会計データベースにエクスポートする必要がある同様のプロジェクトがありました。

POST データを処理してデータベースに保存する .aspx (または PHP など) バックエンドを作成できます。

単一のページから必要なデータは、データを識別するためにフィールド名または ID を使用してフォームに格納できます (必要に応じてスタイル プロパティを使用して非表示にします)。あとは、フォーム アクションを .aspx ページにして、javascript を使用してフォームを送信するだけです。

(または、ページに送信ボタンを追加して、データベースに送信する前にフォームの値を確認できるようにすることもできます)。

于 2009-02-02T06:03:41.983 に答える
1

Google Gearsを検討しましたか?これにより、大量の情報を保存できるローカルSQLiteデータベースにアクセスできるようになります。

于 2009-02-10T20:57:49.537 に答える
1

Greasemonkey が必要な理由は、クロールされるページが実際にはロボットを承認していないためです。Greasemonkey は、クローラーを正当に見せるための最も簡単な方法のように思われました。

実際にブラウザを介してクローラーを汚染しても、それがより正当なものになるわけではありません。あなたはまだサイトの利用規約に違反しています! たとえば、WWW::Mechanize はユーザー エージェント文字列の「なりすまし」にも同様に適していますが、それとクロールは、サイトがスパイダー/クローラーを許可していない場合、違法です!

于 2010-05-16T12:53:55.243 に答える
0

Greasemonkey が必要な理由は、クロールされるページが実際にはロボットを承認していないためです。Greasemonkey は、クローラーを正当に見せるための最も簡単な方法のように思われました。

これは、クローラーを正当に見せるための最も難しい方法だと思います。Web ブラウザーのスプーフィングは、HTTP ヘッダーの基本的な知識があれば、自明のことです。

また、一部のサイトにはスパイダーのように動作するクライアントを探すヒューリスティックがあるため、単純にリクエストをブラウザのように見せても、あなたが何をしているかわからなくなるわけではありません。

于 2010-05-16T13:05:28.177 に答える