-1

ファイル取得コンテンツ機能を使用していくつかのGoogleページをスクレイピングしたい:

     $encoded='http://www.google.co.il/#hl=en&biw=1440&bih=799&sclient=psy-ab&q=site:'.urlencode("http://stackoverflow.com/");

    echo  file_get_contents($encoded);

私がこれを行うとき:

$エンコードされたエコー;

私はこれを得る:

http://www.google.co.il/#hl=en&biw=1440&bih=799&sclient=psy-ab&q=site:http%3A%2F%2Fstackoverflow.com%2F

URLに入れると..欲しいページが表示されます

しかし、関数を使用すると、メインのGoogleページが表示されるだけです..なぜこれが起こるのですか?

4

3 に答える 3

4

これは、URL が Google の新しいクライアント側の機能を使用しているためです。の後のすべて#はクライアント用であり、サーバーは の下のコンテンツを提供しますhttp://www.google.co.il/

アップデート

プログラムで Google 検索結果を使用する場合は、カスタム検索用の API のいずれかを使用してみてください。次の URL の下に ajax クライアント用の検索 Web サービスがあります。

http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=your+term+goes+here

JSON で結果を返します。最初の結果はresponseData->results配列の下にあります。

$search_results = json_decode(file_get_contents('http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=your+term+goes+here'), true);
var_export($search_results['responseData']['results'][0]);

しかし、これはそれ以来非推奨になっていると思います(ただし、まだ応答しています)。

于 2012-08-30T07:14:34.433 に答える
1

URL の # を削除して ? を使用できます。それから試してみてください

<?php
$encoded='http://www.google.co.il/?hl=en&biw=1440&bih=799&sclient=psy-ab&q=site:'.urlencode("http://stackoverflow.com/");

echo  file_get_contents($encoded);
于 2012-08-30T07:16:43.813 に答える
0

$url = "https://www.google.co.in/gfe_rd=cr&ei=RCjlVsPSDPDI8Ae1nruADw&gws_rd=ssl#q=SUCCES";

echo  file_get_contents($url);

Googleページは表示されますが、Google検索ページは表示されません...

于 2016-03-13T09:58:12.893 に答える