1

ウェブページからスコアシートを読み込もうとしています。私たちのチームの統計を作成するために、結果を自分のデータベースに自動的に保存したいと思います。例:http://fvbw.sm-u.de/index.php?seite = game&game = 568

PHPのいくつかのオプション(curl、file、file_get_contentsなど)を使用してページのコンテンツを取得しようとしましたが、常に奇妙な動作を思い付きます。ブラウザで表示すると、実際のスコアが<div id="inhalt"></div>コンテナに表示されます。しかし、PHPを介してページを取得すると、コンテナーは常に空になります。

私の最初の考えは、コンテンツがJS経由でリロードされることでした。しかし、JSの呼び出しが見つかりません!また、Firebugはそのようなアクティビティを追跡しません。また、CSS属性のコンテンツなどは使用されません。

誰かがそこで何が起こっているのか教えてもらえますか?そして、PHPを介してそのページのコンテンツを取得するにはどうすればよいですか?

更新(2013-03-27 12:05):

これは、Firefoxによるリクエストと同じヘッダーを使用する私のコードです。これは、同じ不完全な結果を返します。

$curl = curl_init();
$header[] = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
$header[] = "Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3";
$header[] = "Accept-Encoding: deflate";
$header[] = "Referer: http://fvbw.sm-u.de/index.php?seite=table&table=15";
$header[] = "Connection: keep-alive";
$header[] = "Cache-Control: max-age=0";
$header[] = "Host: fvbw.sm-u.de";

curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0");
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

$data = curl_exe($curl);

起こっているもう一つの奇妙なこと。HttpRequester(Firefoxアドオン)を使用する場合、URLを入力してリクエストを実行するだけで、正しい結果が得られます。生のリクエストは次のようになります

GET http://fvbw.sm-u.de/index.php?seite=game&game=571

ヘッダーも何もありません。curlを使用してこれを行うと、まだ不完全なページが表示されます。

4

1 に答える 1

0

この質問が最新かどうかわからない。私は通常使用してコンテンツを取得できます:

echo file_get_contents('http://fvbw.sm-u.de/index.php?seite=game&game=568');
于 2013-07-19T23:34:58.047 に答える