質問

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

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

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

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

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

役に立ちましたか?

解決

私は、ウェブサイトから(請求書のラインデータ)の全体の多くを取得し、会計データベースにエクスポートするために必要な同様のプロジェクトを持っていた。

は、データベース内のPOSTデータを格納して処理し、バックエンドを、.aspxの(またはPHPなど)を作成することができます。

あなたは、単一のページから必要な任意のデータは、データを識別するために、フィールド名またはIDを使用して、(必要に応じスタイルプロパティを使用して非表示)形式で保存することができます。そして、あなたがする必要があるのは、フォームのアクションに.aspxのページを作成し、JavaScriptを使用してフォームを送信されます。

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

他のヒント

まず、なぜ特定の問題に Greasemonkey を使用したいのかを自問する必要があると思います。Greasemonkey は、ウェブ スパイダーとしてではなく、ブラウジング エクスペリエンスを変更する方法として開発されました。GM_setValue を使用して Greasemonkey にこれを実行させることはできるかもしれませんが、そのソリューションは扱いにくく、開発が難しいことがわかると思います。それには、多くの手動手順 (これらのタブをすべて開く、スクリプトの実行の間に Greasemonkey 変数をクリアするなど) が必要になります。

ページ上の JavaScript を実行する必要がある操作はありますか?その場合は、Perl の使用を検討してください。 WWW::Mechanize::Plugin::JavaScript. 。それ以外の場合は、これらすべてを単純な Python スクリプトで行うことをお勧めします。ぜひご覧ください。 URLlib2 モジュール。たとえば、次のコードを見てください (Cookielib を使用して Cookie をサポートしていることに注意してください。これは、スクリプトでサイトへのログインが必要な場合に必要になる可能性が高くなります)。

import urllib2
import cookielib
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookielib.CookieJar()))
response = opener.open("http://twitter.com/someguy")
responseText = response.read()

その後、正規表現を使用して必要なすべての処理を実行できます。

は、Google Gearsが考えられていますか?それはあなたがに大量の情報を格納することができますローカルのSQLiteデータベースへのアクセスを与えるだろう。

  

Greasemonkeyのを望む理由   クロールされるページがないことです   実際にロボットを承認していません。   Greasemonkeyのが最も簡単なように見えました   クローラの外観を作るための方法   正当ます。

実際にブラウザを介して、あなたのクローラを汚すことはそれがより多くの合法的なことはありません。あなたはまだ、サイトの使用条件を壊しています!例えばWWW :: Mechanizeのは「偽装」あなたのユーザーエージェント文字列にも同様に適しているが、サイトはスパイダー/クローラーを許可しない場合にとクロールは、ある、違法な!

  

Greasemonkeyのを望む理由は、クロールされるページが実際にロボットを承認しないことです。 Greasemonkeyのは、クローラが正当に見えるようにする最も簡単な方法のように思えます。

私は、これは、クローラが正当に見えるように想像できる最も困難な方法だと思います。 Webブラウザを偽装することは、HTTPヘッダーのいくつかの基本的な理解と自明簡単です。

また、いくつかのサイトでは、単純に作るの要求は、ブラウザのように見えるように、あなたは何をしているかを知ることができませんという意味ではありません、クモのように振る舞うのクライアントを探しヒューリスティックを持っています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top