Ответы пользователя по тегу Парсинг
  • Как спарсить выдачу Яндекс.Карт?

    AGorbunoff
    @AGorbunoff
    Учусь:)
    Та еще задача: корректно извлекать данные рейтинга организации. Задал вопрос поддержке Яндекса, как это сделать не нарушая правил платформы. Жду ответ и опубликую здесь.

    А пока, есть простое решение, извлекать данные посредством PHP шоркода:

    <?php 
    
    function rating_function($atts) {
    extract(shortcode_atts(array(
    
      // вставляем ссылку на карточку организации в Яндекс Справочике как есть
      "url" => 'https://yandex.ru/maps/org/<---id организации--->',
    ), $atts));
      
      $content = file_get_contents($url);
        
    	// определяем начало необходимого фрагмента кода, до которого мы удалим весь контент
    	$pos = strpos($content, '<div class="orgpage-reviews-view__rating-score">');
     
    	// удаляем все до нужного фрагмента
    	$content = substr($content, $pos);
     
    	// находим конец необходимого фрагмента кода
    	$pos = strpos($content, '</div>');
     
    	// отрезаем нужное количество символов от конца фрагмента
    	$content = substr($content, 0, $pos);
        
      echo $content;
    	
    	}
    
    add_shortcode('rating', 'rating_function');
    
    ?>


    Получаем рейтинг в числовом значении и вставляем полученный шорткод куда нужно на сайте: [rating].

    P.S.: Только функцию нужно запускать как можно редко;) дабы избежать нагрузки, желательно через периодическое обновление кэша, например, посредством curl закрывая соединение curl_close(); или каждый раз вызывая форму запроса данных в ручную.

    Здесь, предлагается одно из решений посредством curl.
    Ответ написан
    4 комментария