file_get_content无法加载网站内容

时间:2016-04-15 09:05:25

标签: load web-crawler simple-html-dom

由于没有人在我之前的问题中给出答案,我将重新提出这个问题:

我正在尝试使用 simple_html_dom 构建一个定位指定网站的网络抓取工具。我已尝试使用多种方法加载此类网站类别的内容: load_file,file_get_content,file_get_html,str_get_html,但它一直给我一个"未找到&#34 ;像这样的消息:

"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;

1 个答案:

答案 0 :(得分: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;

我应该说的另一件事是,如果您正在寻找从页面中剔除价格,那么您将失去运气。看一下源代码(右键单击页面),您就会发现价格不可见。他们显然试图避免被刮伤。不幸的是,我不知道您必须使用哪种替代解析工具才能获得成功。