2016-04-15 3 views
0

Поскольку никто не дает ответа на мои предыдущие вопросы, я reask этот вопрос:file_get_content не может загрузить содержимое веб-сайтов

Я пытаюсь построить веб-сканер, который нацелен указанный веб-сайты с помощью simple_html_dom. Я пытался загрузить содержимое такой веб-сайт категории, используя несколько методов: уже 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

Кстати, я нашел еще несколько сайтов, которые просто любят эту залору, которые избегают царапин и, что еще хуже, поскольку нет никакой ссылки или значения в источнике страницы просмотра. Они скрывают это в других «ссылках», используя ajax. Таким образом, это означает, что мне нужно получить доступ к этим ссылкам, если я хочу использовать их ценность для своих продуктов. –

+0

@RudyRaito сообщите мне, если вы найдете другой парсер. Я только что прочитал о Селене. Простой HTML Dom - отличный скрипт для начинающих, и я был настоящим новичком, когда начал его использовать, но теперь я думаю об обновлении. –

Смежные вопросы