@hrvasiliy

Что я делаю не так при парсинге?

Имеется сайт-донор, пытаюсь взять с него информацию и записать ее в файл. (Дней 10-15 назад все отлично парсилось при момощи CURL'a). Сейчас же, в файл записывается информация о том, что требуется включить JS, меняю метод получения страницы с CURL'a на PhantomJS и выдает ту же ошибку. Не понимаю, сайт-донор усилил защиту? Как же тогда получать информацию?

function curl($url, $userAgent = null, $proxy = null, $referer = null)
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_USERAGENT, $userAgent);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_REFERER, $referer);
curl_setopt($curl, CURLOPT_PROXY, $proxy);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
$out = curl_exec($curl);
curl_close($curl);

return $out;
}
  • Вопрос задан
  • 714 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
сайт-донор усилил защиту?
Вероятно. Зайдите с чистого бразузера (приватный режим вам в помощь), посмотрите какие куки создаются, добавьте их в запрос CURL.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
Активировав максимальный уровень телепатии, предположу следующее.

информация о том, что требуется включить JS

Сайт донор перешел на ajax и подгрузку данных основных через js.
Пользователям без js выдается заглушка с просьбой включить js, что вы и видите в ответе CURL.

Посмотрите какие ajax запросы шлет страница донор на сервер и попытайтесь воспроизвести их через curl уже у себя на сервере.
Ответ написан
Обратитесь с этим вопросом к разработчикам сайта-"донора". Попросите совета, поинтересуйтесь наличием API или возможности сделать выгрузку базы. В идеале, расскажите им, как вас можно найти в реальном мире, тогда высока вероятность, что они сами всё сделают.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы