2010-12-17 8 views
2

私はスクリプトを書くことに興味があります.Greasemonkeyのようなツールを使ってブラウザに追加するのが簡単で、ページのHTMLソースコードを外部サーバに送ります。解析され有用なデータがデータベースに送られる。外部サーバへのソースコードの送信

しかし、私はこのようなことは何も見ていないし、この作業にどのようにアプローチするのか分からない。私は、ある種のHTTP投稿が最良の方法だろうと思っていますが、私はそれらのアイデアを完全に新しくしています。そして、私はそれを解析するためにデータをどこに送信するのか正確にはありません(例えば、HTML文書をデータベースに書き込む)。

基本的に、私の全体的な目標は、このように機能するものです(ステップ1と2で助けが必要であることに注意してください。データ解析技術に精通しており、Webには適用しません):

  1. ユーザー
  2. ソースコードはコードはMySQLデータベースに格納されている意味のあるデータに解析されているサーバ
  3. にGreasemonkeyのまたはいくつかの他のツールを介して送信された特定のページを閲覧します。

ご協力いただきありがとうございます、ありがとうございます!

編集:コード

ihtml = document.body.innerHTML; 
GM_xmlhttpRequest({ 
method:'POST', 
url:'http://www.myURL.com/getData.php', 
data:"SomeData=" + escape(ihtml) 
}); 

編集:現在のJSログイン:

あなたのQのコメントで述べたように
Namespace/GMScriptName: Server Response: 200 
OK 
4 
Date: Sun, 19 Dec 2010 02:41:55 GMT 
Server: Apache/1.3.42 (Unix) mod_gzip/1.3.26.1a mod_auth_passthrough/1.8 mod_log_bytes/1.2 mod_bwlimited/1.4 FrontPage/5.0.2.2635 mod_ssl/2.8.31 OpenSSL/0.9.8e-fips-rhel5 PHP-CGI/0.9 
Connection: close 
Transfer-Encoding: chunked 
Content-Type: text/html 

Array 
(
) 

http://www.url.com/getData.php 
+0

これは、広告または類似の行動ターゲティングのために使用することが何かのように聞こえる - 問題のページのソースは機密情報を含む可能性があることに注意してください(電子メール、銀行の記録など)個人的には、私はこれを完全に避けるでしょうが、あなたがそれをすることを強く求めるなら、あなたのコードが非常に安全であることを確認してください。 – Basic

答えて

3

、私は、個人的にこれは良いアイデアです納得しませんよペストのようにこれを行った拡張は避けてください...

すべてのhtml要素で利用可能なinnerHTMLプロパティを使用して、そのノード内のHTMLを取得することができます。 ement。その後、AJAX HTTP(S!)リクエストを使用してデータを送信することができます。

いくつかのページが非常に大きく、ほとんどのユーザーがアップロード速度よりも優れたダウンロード速度を持つため、何らかの圧縮方法を検討することもできます。

NB:innerHTMLは、Webサーバーから送信された実際のソースではなく、現在の状態でページを表示するソースコードを取得します。たとえば、JSを使用して要素を追加した場合、そのソースたとえそれがウェブ上で送信されなかったとしても、要素はinnerHTMLに含まれます。

代わりに、AJAXリクエストを使用して現在のURLを取得し、自分自身に応答を送信することもできます。これはクライアントに送信されたものとまったく同じですが、問題のサーバーはページが2回配信されたことを認識します(一部のWebアプリケーションでは問題が発生する可能性があります。二回削除ボタン「を押す」ことによって)

1つの最終提案は、単に自分自身に現在のURLを送信し、あなた自身のサーバー上でダウンロードを行うことであろう - 「あなたがwouldn、これはまた、セキュリティリスクの一部を緩和するだろうNB

:トン

EDITパブリックないページのコンテンツを取得することができ、私は問題を追跡に使用された多くの偽の情報を削除した、場合編集ログを確認あなたは完全な詳細が欲しい

PHPコード:

<?php 
    $PageContents = $_POST['PageContents'] 
?> 

のGreaseMonkeyスクリプト:

var ihtml = document.body.innerHTML; 
GM_xmlhttpRequest({ 
    method:'POST', 
    url:'http://example.com/getData.php', 
    data:"PageContents=" + escape(ihtml), 
    headers: {'Content-type': 'application/x-www-form-urlencoded'} 
}); 
+0

私は、このスクリプトを重要な情報を含まない1つの特定のWebサイト(訳注:私が簡単に解析しようとしているデータ)でのみ使用することに言及しておきます。 Ajaxや他のツールを使ってHTTPを利用する可能性について説明する人もいますか?私は例を見てきましたが、私が見つけた最高のものは、URL情報を使ってフォームに記入することを目的としたスクリプトです。これはページ全体のソースコードには当てはまりません。 – Chris

+0

私は詳細を私の答えを編集しました – Basic

+0

ありがとう! Greasemonkeyの何かが私の必要にぴったりです。私はGM_xmlhttpRequestオブジェクトのフィールドを理解していますが、MyScript.phpがどのように情報を受け取るかを私に知らせることができますか? – Chris