別の Web サイトからデータを取得して、自分の Web サイトに表示できるかどうか疑問に思っていました。良い例は alexa.com です。たとえば、私のページのdivにAlexaのトラフィックランクと評判を表示する必要があるため、Alexaがデータを変更するたびに動的に変更されます。
ご協力ありがとうございました。
別の Web サイトからデータを取得して、自分の Web サイトに表示できるかどうか疑問に思っていました。良い例は alexa.com です。たとえば、私のページのdivにAlexaのトラフィックランクと評判を表示する必要があるため、Alexaがデータを変更するたびに動的に変更されます。
ご協力ありがとうございました。
yahoo yql... (php? プロキシ サーバーサイド スクリプトの代わりに)。
私はあなたが外部リンク サイトを所有/管理していないのではないかと疑っています。そのため、別のサイトからコンテンツを取得すると、(最新のブラウザーに対して) クロスドメイン セキュリティ制限に該当することになります。
したがって、「ユーザーの力」を取り戻すには、http://query.yahooapis.com/を使用してください。
jQuery は厳密には必要ありません。
例 1:
SQL に似たコマンドを使用する:
select * from html
where url="http://stackoverflow.com"
and xpath='//div/h3/a'
次のリンクは、最新の質問の SO をスクレイピングします (クロスドメイン セキュリティ ブル $#!7 をバイパスします):
http://query.yahooapis.com/v1/public/yql?q=select%20title%20from%20html%20where %20url%3D%22http%3A%2F%2Fstackoverflow.com%22%20and%0A%20%20%20%20%20%20xpath%3D%27%2F%2Fdiv%2Fh3%2Fa%27%0A%20 %20%20%20&format=json&callback=cbfunc
ご覧のとおり、これは JSON 配列 (xml を選択することもできます) を返し、 callback-function: を呼び出しますcbfunc
。
実際、「ボーナス」として、「tag-soup」からデータを正規表現する必要がなくなるたびに 、子猫も保存します。
自分の中の小さなマッドサイエンティストがくすくす笑い始めているのが聞こえますか?
詳細については、この回答を参照してください (その他の例については、コメントであることを忘れないでください)。
幸運を!
1 つの方法は、Alexa.com サイトの ajax リクエストを作成することです。すべての html を受け取ったら、jquery などを使用して必要なdivをスクレイピングできます。ちょっと汚い感じがしますが、欲しいものを手に入れる簡単な方法です。ただし、これはページ コンテンツが動的に読み込まれないことを前提としています。
編集: 詳細については、これを参照してください: jQuery ajax を使用して外部 Web サイト データを要求する