简单的DOM file_get_html什么都不返回

时间:2014-02-27 21:23:20

标签: php web-scraping simple-html-dom

我正试图从某些网站上抓取数据。对于几个网站来说,它似乎都很好,但对于一个网站,它似乎无法获得任何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变量,我得到bool(false)。

我的PHP错误日志说明了这一点:

[2014年2月27日22:20:50欧洲/阿姆斯特丹] 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行

1 个答案:

答案 0 :(得分:4)

这是您的用户代理,file_get_contents默认不发送,因此:

$url = 'http://www.magiccardmarket.eu/?mainPage=showSearchResult&searchFor=tarmogoyf';
$context = stream_context_create(array('http' => array('header' => 'User-Agent: Mozilla compatible')));
$response = file_get_contents($url, false, $context);
$html = str_get_html($response);
echo $html;