@msimrial

Как спарсить яндекс каталог по картинкам?

пытался каталог яндекса слизать по картинкак но увы выдало
na.captcha.yandex.net/image?key=c1gsjVSbLQMvTeM033...
доп. joxi.ru/MAj1G4eTWVN72e

require_once 'simple_html_dom.php';
set_time_limit(0);

function getIMageYandex($name){
    $name =  rawurlencode($name);
    $url = "https://market.yandex.ru/search.xml?text={$name}&from=reach-search-snippet";
    echo $url."<br>";

    $yandex_data = file_get_html($url);
    foreach($yandex_data->find('script,link,comment') as $tmp)$tmp->outertext = '';
    echo 1 ."<br>";
    $res_url = $yandex_data->find("a.snippet-card__header-link")->attr;
    print_r($yandex_data->find("img.image"));
    preg_match('/^\/product\//',$res_url->attr['href'], $mathes);
    print_r($mathes);

    if(count( $res_url )){
        echo 2 ."<br>";
        $yandex_product = file_get_html("https://market.yandex.ru" . $res_url->attr['href']);
        echo "https://market.yandex.ru" . $res_url->attr['href'];
    }

}
getIMageYandex("Hankook Optimo K715 175/70 R13 82T");


Может кто что подскажет как получить картинки ?
  • Вопрос задан
  • 871 просмотр
Решения вопроса 1
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
Надо делать запросы с разными заголовками, с разный ip и делать таймаут между ними. Это защита от парсинга. Яндекс маркет - самый тошнотворный вариант для это затеи.
Когда-то парсил его с помощью проги contentdownloader - это проще чем 'simple_html_dom.php'.

А еще у яндекс-маркета есть api. Подключив, которое можно получать данные.

Я бы парсил через ПО, что бы набить базу, а потом то чего нету добивал бы парсингом, через 'simple_html_dom.php', при этом сохраняя у себя результат. Тогда запросов к яндексу станет меньше и не будет банить.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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