ユーザーのIPを介して外部(クロスドメイン)ページをこするのは可能ですか?
ショッピング比較サイトの場合、e-comサイトのページをスクレイピングする必要がありますが、サーバーからのいくつかのリクエストが禁止されるので、クライアント側のスクレイピングを行う方法を探しています。つまり、ユーザーのサイトからのリクエストページです。 IPとサーバーに送信して処理します。
いいえ、 Same-Originポリシー と呼ばれるセキュリティ対策のため、JavaScriptを使用して他のWebサイトからコンテンツをスクレイピングするためにクライアントのブラウザーを使用することはできません。
このポリシーを回避する方法はないはずです。それはもっともな理由です。あなたがあなたの訪問者のブラウザにどんなウェブサイトでも何かをするように命令することができると想像してください。それはあなたが自動的に起こりたいことではありません。
ただし、そのためのブラウザー拡張機能を作成することもできます。 JavaScriptブラウザー拡張機能には、通常のJavaScriptよりも多くの特権を装備できます。
Adobe Flashにも同様のセキュリティ機能がありますが、Java(JavaScriptではありません)を使用して、ユーザーのIPアドレスを使用するWebスクレイパーを作成できます。その場合も、おそらくやりたくないでしょう。 Javaプラグインは安全ではない(そしてロードが遅い!)と見なされており、すべてのユーザーがプラグインをインストールしているわけではありません。
さて、あなたの問題に戻りましょう:
E-comサイトのページをこすり落とす必要がありますが、サーバーからのいくつかの要求で私は禁止されます。
そのWebサイトの所有者が彼のサービスをそのように使用することを望まない場合は、おそらくそれを行うべきではありません。そうしないと、法的影響を受ける危険があります(詳細は ここ を参照)。
あなたが「法律の暗い面」にいて、それが違法かどうかを気にしない場合は、 http://luminati.io/ のようなものを使用して、実際の人々のIPアドレスを使用できます。 。
基本的にブラウザはこれを回避するように作られています…
誰もが最初に考えるソリューション:
jQuery/JavaScript:iframeのコンテンツへのアクセス
ただし、「最近」のブラウザ(10年未満)ではほとんどの場合機能しません。
代替案は次のとおりです。
[編集]
私が考えることができるもう1つの解決策は、 [〜#〜] yql [〜#〜] サービスを使用することです。この方法では、検索エンジン/パブリックプロキシを情報を取得するためのブリッジ。 これを行う簡単な例を示します 、要するに、クロスドメインのGETリクエストを取得します
http://import.io をご覧ください。クローラー、コネクター、エクストラクターがいくつか提供されています。私は彼らがどのようにして禁止を回避するのかよくわかりませんが、彼らは何とかします(私たちは問題なく1年以上システムを使用しています)。
あなたはartooでブラウザ拡張を構築することができます。
http://medialab.github.io/artoo/chrome/
これにより、同じ元のポリシーの制限を回避できます。すべてJavaScriptで、クライアント側にあります。