Проверка количества результатов поиска Google в скрипте PHP - PullRequest
0 голосов
/ 03 апреля 2019

Можно ли проверить количество результатов поиска Google определенной фразы в PHP-скрипте с помощью Google API?Мне любопытно, можно ли это как-нибудь сделать.Если да, что мне делать?

РЕДАКТИРОВАТЬ

Хорошо, согласно советам drakin8564, это моя функция:

function google(String $text) {

        // create curl resource 
        $ch = curl_init(); 

        // set url 
        curl_setopt($ch, CURLOPT_URL, 'https://www.google.com/search?q="'.$text.'"'); 

        //return the transfer as a string 
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

        libxml_disable_entity_loader(false);
        // $output contains the output string 
        $output = curl_exec($ch); 

        $xml = new DOMDocument();

        $xml->loadHTMLFile($output);

        $string = $xml->getElementById('resultStats');

        $string = str_replace('Około ', '', $string); 
        $string = str_replace(',', '', $string);
        $results = intval($string);

        if($results>0) {

            curl_close($ch);            
            return true; 
        } else {
        curl_close($ch);     
        return false;
        // close curl resource to free up system resources 
        } 
        } 

ПРИМЕЧАНИЕ: "Około" означает "О"на польском, также у меня есть предупреждение:

Warning: DOMDocument::loadHTMLFile(): I/O warning : failed to load external entity "<!doctype html><html itemscope="" itemtype="http://schema.org/SearchResultsPage" lang="pl"><head><meta content="text/ in C:\xampp2\htdocs\file.php on line 19

А вот реализация

if(google("flower") == true){
            echo "search results exist";

        } else {
            echo "results don't exist";
        }

if(google("7dsa8dsaza") == true){
            echo "search results exist";

        } else {
            echo "results don't exist";
        }

К сожалению, есть проблема, потому что оба примера вызывают вывод "результатов поиска", а результатыдля "7dsa8dsaza" не существует.Как это исправить?

1 Ответ

0 голосов
/ 03 апреля 2019

Я не знаю, как это сделать с помощью Google API, но вы можете свернуться до https://www.google.com/search?q={your+search+words}

Вы должны быть в состоянии бросить этот HTML в объект, используя DomDocument. Примерное количество результатов в div с id = "resultStats"

Примеры использования функций php curl: PHP CURL Docs

Документы для DomDocument, есть несколько примеров в разделе комментариев: Документы PHP DomDocument

РЕДАКТИРОВАТЬ: Пример, чтобы получить только число из элемента resultStats:

$string = "About 214,000,000 results (0.41 seconds)"; 
$string = str_replace('About ', '', $string); 
$string = str_replace(',', '', $string);
$results = intval($string);
...