m.klizan
19.01.2013 - 19:48
Клиент попросил распарсить каталог elevel.by. Затруднение вызвал парсинг картинок.
Получаю с помощью функции file_get_contents(), сохраняю file_put_contents(). Результат - картинка-заглушка небольшого размера с запрещающим знаком, вместо нужного изображения. И так на всех изображениях. Тот же самый код с других сайтов забирает картинки, с этого - нет.
В чем может быть проблема и как ее решить?
m.klizan
19.01.2013 - 21:06
Или, может, существует скрипт/программа, сохраняющая html-страницы вместе с графикой? Эдакая автоматическая замена Ctrl+S ?
m.klizan
19.01.2013 - 21:24
kawwСпасибо, что отозвались. Смотрите:
<?php
$img = file_get_contents("http://elevel.by/images/lights/eglo/eglo_355.jpg");
file_put_contents("images/full/".'test2.jpg', $img);
?>
Вот такой двухстрочный код. Сохраняет не изображение, а заглушку.
значит это такой способ защиты. можно эмулировать запросы браузера используя для этого cURL
а вообще это не хорошо - парсить чужие сайты )
m.klizan
19.01.2013 - 21:39
kawwЗнаю, что нехорошо, поэтому никогда не занимался и не сталкивался с таким. Но желание закачки - закон
А что насчет эмулятора cURL ? Можно поподробнее?
m.klizan
19.01.2013 - 21:43
Что интересно, сохранить изображения вручную как отдельно, так и со всей страницей получается.. Стало быть защита исключительно от парсинга? Может обработчик на file_get_contents() ? Хотя я не могу представить, как это можно реализовать..
Причем это не js - проверял
m.klizan
все очень просто, только что протестил, они проверяют referer, если подсунуть его, то все картинки нормально отдают
m.klizan
19.01.2013 - 22:50
kaww
Почитал про referer, понял, что он содержит урл источника. Но совсем не понял, как можно это применить с целью получения картинок. Что значит "подсунуть рефер"?
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.