0

私は現在、単純なhtml domを使用してポリティファクトからいくつかのデータを収集しようとしていますが、多くの場合、予想されるhtmlではなく奇妙なエラーが発生します。目標は、サイトをブルートフォースすることではなく、1日に1〜2回リクエストして、結果をキャッシュすることです。ここで私が得るリターンのほとんど:

‹������í]{wÛ6²ÿ»=g¿ªn#»1EËJœÄ–µ×vœ&ÙÄñÚn²{r{|(  ’S$ÇeuÛï~3न‡c'ÛísNÄ`f0˜Úß=}sxþ¯“#1ŠÆŽ8ùùàÕ‹CQ3Ló]ëÐ4Ÿž?ÿ|~þú•h66Åy`¹¡Ùžk9¦yt\µQù;¦9™L“...

そして、これが超単純なコードです:

$html = file_get_html('http://www.politifact.com/personalities/barack-obama');
print_r($html->plaintext);

理由はありますか?ウェブサイト側のある種の保護/リダイレクト?

どうもありがとうございます !

4

1 に答える 1

1

期待どおりのページを受け取りましたが、gzip形式です。サーバーは、accept-encodingヘッダーがリクエストに含まれていないかどうかを気にせず、デフォルトのプレーンテキスト応答を送信する代わりに、とにかくgzip圧縮されたデータを送信するようです。

simple-html-domでデータを解凍できるとは思いませんが、その目的でcURLを使用できます。

$ch = curl_init('http://www.politifact.com/personalities/barack-obama/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_ENCODING, 'gzip');

$data = curl_exec($ch);

$html = str_get_html($data);
于 2012-08-22T20:45:03.470 に答える