2016-04-15 50 views
0

的内容,我会reask这个问题:file_get_content无法加载的网站

我试图建立,即针对特定使用simple_html_dom网站的web爬虫。我试着加载使用几种方法已经这样一个网站类别的内容:LOAD_FILE,file_get_content,file_get_html,str_get_html,但它一直给我这样一个“未找到”消息:

"Check your spelling 
Use another word or term similar to what you are looking for. 
It is better if you use just one key word for searching. 
Generally used keywords will give better result." 

就好像我的代码试图加载空白搜索(没有关键字)。当我将url直接复制到浏览器中时,我看到了我想要的内容和元素。 这是否意味着有一个网站的内容无法通过simple_html_dom方法加载?

这里是我的测试代码:

include_once('simple_html_dom.php'); 

    $target_url = "http://www.zalora.co.id/women/sepatu/"; 

    $html = new simple_html_dom(); 
    $html -> load_file($target_url); 

    //$html = file_get_html($target_url); 

    //$html = file_get_contents($target_url); 
    //$html = str_get_html($html); 

    echo $html; 

回答

0

我无法解释为什么你得到这样的结果,似乎很奇怪,我。我只是试图加载页面的HTML,它工作得很好,虽然我用cURL。这是我使用的代码:

$ch = curl_init('http://www.zalora.co.id/women/sepatu/'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36'); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($ch, CURLOPT_HEADER, FALSE); 
$curl_scraped_page = curl_exec($ch); 
$html = new simple_html_dom(); 
$html->load($curl_scraped_page, true, false);   
echo $html; 

,我想说的是,如果你正在寻找从页面刮价格,那么你的运气了另一件事。看看源代码(右键单击页面),你会看到价格不可见。他们显然正在努力避免被刮伤。不幸的是,我不知道你将不得不采用哪种替代解析工具才能获得成功。

+0

感谢您的建议。我会尝试你的代码。是的,你是对的,虽然我检查元素时有价格,但当我试图查看页面源代码时,价格不在于HTML元素之一,而是在var应用程序中。这意味着,他们可能会尝试使用Ajax或Json值来隐藏它们的值。我的代码甚至无法访问这些产品的链接,因为它们被隐藏了。 –

+0

顺便说一句,我发现另一个网站,就像这个zalora,谁避免被刮,甚至更糟糕,因为没有链接或价值观的页面源。他们使用ajax将其隐藏在另一个“链接”中。所以这意味着我需要访问这些链接,如果我想获得他们的产品价值。 –

+0

@RudyRaito让我知道你是否找到另一个解析器。我刚读过硒。简单的HTML DOM是一个很好的初学者脚本,当我开始使用它时,我是一个真正的初学者,但现在我正在考虑升级。 –