我试图从一些网站上抓取数据。对于几个网站它似乎都很好,但对于一个网站,它似乎无法获得任何HTML。这是我的代码:简单DOM file_get_html什么都不返回
<?php include_once('simple_html_dom.php');
$html = file_get_html('https://www.magiccardmarket.eu/?mainPage=showSearchResult&searchFor=' . $_POST['data']);
echo $html; ?>
我正在使用ajax来获取数据。当我在js中记录返回的值时,它完全是空的。
难道这是因为这个网站在https上运行吗?如果是这样,有什么办法可以解决它吗? (我试过改变了网址为http,但我得到了相同的结果)
更新:
如果我的var_dump的$ HTML变量,我得到布尔(假)。
我的PHP错误日志中这样说:
[27月2014年22点20分五十秒欧洲/阿姆斯特丹] PHP的警告:的file_get_contents(http://www.magiccardmarket.eu/?mainPage=showSearchResult&searchFor=tarmogoyf):未能打开流:HTTP请求失败! HTTP/1.0 403 /Users/leondewit/PhpstormProjects/Magic/stores/simple_html_dom.php禁止 上线75
只需尝试标准调试。也许有错误。尝试启用error_reporting或检查错误日志。尝试echo'ing别的''而不是'$ html'来看看你是否得到任何结果。此外,也许尝试'var_dump($ html);'而不是只是回声它。 –
用反馈更新了我的问题。另外,如果我回显其他东西(即一个字符串),我会得到一个正常的结果。 – Leon
'403 Forbidden'错误代码是从您尝试联系的服务器(magiccardmarket)发送的,通常在您请求的页面需要登录时发送。他们可能阻止来自不是浏览器的用户代理的自动请求。你可以尝试改变你的用户代理,但这真是一个猜测。如果是这种情况,他们会阻止它,原因很可能是他们不希望人们滥用其网站。 –