<?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');
?>
@Nikkorfed, для одного из своих проектов запилил на CURLe.
<?php
/* Вводные данные
* Адрес организации вида: https://yandex.ru/maps/org/---id---
* Class, в котором находится рейтинг: 'orgpage-reviews-view__rating-score'
* Подключить библиотеку phpQuery: https://code.google.com/archive/p/phpquery/
*/
function curlshot_func() {
$get_url = 'https://yandex.ru/maps/org/---id---';
$refer = 'http://google.ru';
$headers = array (
"Cache-control: no-cache",
"Upgrade-insecure-requests: 1",
"DNT: 1",
"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp",
"Connection: keep-alive",
"Upgrade-Insecure-Requests: 1",
"Pragma: no-cache",
"TE: Trailers",
"Accept-language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3"
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $get_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_ENCODING, 'gzip, deflate');
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
/*curl_setopt($ch, CURLOPT_PROXY, '127.0.0.1:8080');
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
curl_setopt($ch, CURLOPT_PROXYUSERPWD,'user:pass');*/
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_REFERER, $refer );
curl_setopt($ch, CURLOPT_COOKIEFILE, __DIR__ . '/cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, __DIR__ . '/cookie.txt');
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36');
curl_setopt($ch, CURLOPT_VERBOSE,1);
$data = curl_exec($ch);
if ($output === FALSE) {
// Если что-то пошло не так
echo 'Упс, ошибочка: ' . curl_error($ch);
return;
}
$document = phpQuery::newDocument($data);
$element = $document->find('.orgpage-reviews-view__rating-score')->text();
return $element; // не echo, а именно return корректно отображает данные в шорткоде
}
add_shortcode('curlshot', 'curlshot_func');
нужно взять данные о рейтинге организации и количестве отзывов у неё- а что тут за кража?
Ну нет у нас централизованного места
Сервис Яндекс Справочник, так-же как и вся IT индустрия развивается постепенно и, возможности извлечь данные о рейтинге средствами APi у них, на сегодняшний день нет!
Компания не виновна в том, что сервисы отзывов не разработали под каждые потребности индивидуальные APi. Но при этом, данные о компании, во всю эксплуатируются платно и бесплатно.
Технические меры LinkedIn по блокировке скрапинга мешают контрактам hiQ с собственными клиентами, которые полагаются на эти данные. На юридическом жаргоне это называется «злостным вмешательством в контракт» (tortious interference with contract).
Суд не только легализовал эту практику, но запретил мешать конкурентам снимать информацию с вашего сайта в автоматическом режиме, если сайт является общедоступным. Суд подтвердил понятную логику, что заход бота-скрапера юридически не отличается от захода браузера. В обоих случаях «пользователь» запрашивает открытые данные — и что-то делает с ними на своей стороне.
Сейчас многие владельцы сайтов пытаются поставить технические препоны конкурентам, которые полностью копируют их информацию, не защищённую копирайтом. Например, цены на билеты, товарные лоты, открытые профили пользователей и т. д.
Некоторые сайты считают эту информацию «своей», а скрапинг расценивают как «воровство». Юридически это не так, что теперь закреплено официально в США.