0

我正在尝试使用简单的 html dom 从 politifact 收集一些数据,但是很多时候我遇到了奇怪的错误,而不是预期的 html。目标不是暴力破解站点,而是每天请求一次或两次并缓存结果。我在这里得到的大部分回报:

‹������í]{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请求中不包含标头,而不是发送默认的纯文本响应,而是发送压缩数据。

我不认为 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 回答