我当前正在尝试使用简单的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);
你有什么想法吗? 网站上有哪些保护/重定向?
非常感谢!
答案 0 :(得分: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);