Парсинг Яндекс Маркета

Тема в разделе "Как сделать...", создана пользователем mefisto, 2 май 2015.

  1. mefisto

    mefisto Оптимист

    Регистр.:
    9 дек 2008
    Сообщения:
    319
    Симпатии:
    195
    Добрый день. Возник собственно вопрос.
    Есть магазин, магазин регулярно выпадает из категории ввиду особорукости разработчиков маркета. Категория товаров меняется произвольно и в хаотичной форме.

    Как результат, товар не всегда попадает в ту категорию, которая выпадает первой при поиске. Отсюда напрашивается решение - проверка результатов выдачи поисковика маркета по названию товара на наличие магазина в результатах выдачи.

    Все бы хорошо, если бы яндекс больше занимался качеством работы, а не защитой от парсинга, а так, при попытке курлом зайти на страницу я вижу все, кроме самих товаров.

    Отсюда вопрос, есть ли возможность обойти защиту не прибегая к использованию партнерского api?

    PHP:
    $curl->setopt(CURLOPT_FAILONERROR1);
    $curl->setopt(CURLOPT_FOLLOWLOCATIONtrue);// allow redirects
    $curl->setopt(CURLOPT_RETURNTRANSFER,1); // return into a variable
    $curl->setopt(CURLOPT_USERAGENT"Opera/9.80 (Windows NT 6.2) Presto/2.12.388 Version/12.17");
    $curl->setopt(CURLOPT_COOKIESESSIONtrue);
    $curl->setopt(CURLOPT_SSL_VERIFYPEER0);
    $curl->setopt(CURLOPT_COOKIEFILE'cookie.txt');
    $curl->setopt(CURLOPT_COOKIEJAR'cookie.txt');
     
  2. bigsylk

    bigsylk Писатель

    Регистр.:
    28 мар 2015
    Сообщения:
    2
    Симпатии:
    0
    Всё же придётся использовать API, так как если защита стоит на сервере у них, то и обходить её нужно на их сервере... такая вот философия))
     
  3. webberg

    webberg Писатель

    Регистр.:
    11 май 2015
    Сообщения:
    1
    Симпатии:
    0
    AJAX используется скорее всего, поэтому получая страницу через cURL вы не видите списка. API быстрее парсинга, надежнее и дает больше возможностей. Остановитесь на API.
     
  4. mefisto

    mefisto Оптимист

    Регистр.:
    9 дек 2008
    Сообщения:
    319
    Симпатии:
    195
    Вся загвоздка в том, что маркет не дает доступ к своему api кому попало, кроме больших порталов и чего-то там еще.
    Даже когда я им пытался объяснить, что мой доступ к api принесет выгоду Яндексу, все равно не повелись )

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

    Впрочем, зачем писать, не отвечая на вопрос.. посты что ли набить
     
  5. DevOrc

    DevOrc Создатель

    Регистр.:
    5 июн 2014
    Сообщения:
    31
    Симпатии:
    10
    Сталкивался с этой проблемой у самого сдох парсинг через прокси, и теперь уже ничего не помогает, однако есть варианты
    Доступ к контентному апи яндекса через посредников:
    Перейти по ссылке платник, но есть бесплатный вариант 1 запрос в 5 секунд
    Перейти по ссылке платник
     
    mefisto нравится это.