Приходит ответ без нужного блока

104
05 марта 2022, 18:40

Есть функция парсинга количества страниц в индексе Google

if ( ! function_exists('google_index')) {
function google_index($domain)
{
    $url = 'https://www.google.com/search?q=site:'.$domain;
    $ch = curl_init();
    $timeout = 5;
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
    $html = curl_exec($ch);
    if(curl_error($ch)) {
        return 'N/A';
    }
    parseResults($html);
}
function parseResults($html) {
    @preg_match('#<div.*?id="resultStats"[^>]*>(.*?)<\/div[^>]*>#siu', $html, $matches);
    if(isset($matches)) {
        $withoutTags = @preg_replace('/<[^>]*>[^<]*<[^>]*>/siu', '', $matches[1]);
        $num = @preg_replace("/\D/u", "", html_entity_decode($withoutTags));
        return (float) $num;
    }
    return 0;
}

}

Но ответ приходит без этого блока, хотя он есть на странице поиска

<div id="resultStats">Приблизное количество результатов: 29&nbsp;100<nobr> (0,30 сек.)&nbsp;</nobr></div>

И есть сайт, где все это работает

Answer 1

Установка опций CURLOPT_USERAGENT решила вопрос

READ ALSO
Как построить архитектуру сайта .Сайт будет предназначен для каждого региона

Как построить архитектуру сайта .Сайт будет предназначен для каждого региона

Для каждого региона создавать свой сайт с по доменом или как ? Что бы поисковики выдавали сразу информацию для клиента по его регионаПишу...

83
PHPSPREADSHEET задать формулу

PHPSPREADSHEET задать формулу

Как в библиотеке phpspreadsheet можно задать формулу A1 * A2 * A3 / A4?

77
Webpack не поддерживает классы?

Webpack не поддерживает классы?

Cтолкнулся с такой проблемой: объявление класса со свойством (приватным или нет - не важно)

61