Encontrar palavras chaves relacionadas em PHP

Se você precisa encontrar palavras-chaves relacionadas a um determinado termo, você pode utilizar as palavras relacionadas do Google.

[code language=”PHP”]
<?php

$lstr_googleQueryTerm = ‘Teste de Vídeo’;
$lstr_googleQueryURL = ‘https://www.google.com/search?hl=en-US&q=’.urlencode($lstr_googleQueryTerm);

$lstr_postContent = CURL_downloadHTTP ( $lstr_googleQueryURL, ‘https://www.google.com/’);

$dom = new DOMDocument;
libxml_use_internal_errors(1);
$dom->loadHTML($lstr_postContent);
$xpath = new DOMXpath( $dom );

$metas = $xpath->query(‘//*/div[contains(@class, \’card-section\’)]//a/*’);
$larr_relatedQuery = array();

foreach ($metas as $meta) {
$larr_relatedQuery[] = $meta->textContent;
}

print_r($larr_relatedQuery);

function CURL_downloadHTTP ( $pstr_URL = ”, $pstr_refererURL = ” )
{

$lobj_curlObject = curl_init();

curl_setopt($lobj_curlObject, CURLOPT_URL, $pstr_URL);
curl_setopt($lobj_curlObject, CURLOPT_HEADER, 0);
curl_setopt($lobj_curlObject, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($lobj_curlObject, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($lobj_curlObject, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($lobj_curlObject, CURLOPT_TIMEOUT, 30);
curl_setopt($lobj_curlObject, CURLOPT_USERAGENT, ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36’);
curl_setopt($lobj_curlObject, CURLOPT_HTTPHEADER, array(‘Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7’, ‘Accept-Language: en-us,en;q=0.5′));
curl_setopt($lobj_curlObject, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($lobj_curlObject, CURLOPT_DNS_USE_GLOBAL_CACHE, false );
curl_setopt($lobj_curlObject, CURLOPT_DNS_CACHE_TIMEOUT, 2 );
if (trim($pstr_refererURL) != ”) curl_setopt($lobj_curlObject, CURLOPT_REFERER, $pstr_refererURL);
curl_setopt($lobj_curlObject, CURLOPT_COOKIEJAR, dirname(__FILE__)."/cookie.txt");
curl_setopt($lobj_curlObject, CURLOPT_COOKIEFILE, dirname(__FILE__)."/cookie.txt");

$lstr_contentHTML = curl_exec($lobj_curlObject);

if(curl_errno($lobj_curlObject)){

var_dump(curl_exec($lobj_curlObject));
var_dump(curl_getinfo($lobj_curlObject));
var_dump(curl_error($lobj_curlObject));

}

curl_close($lobj_curlObject);

return $lstr_contentHTML;
}
[/code]

Será encontrado para o termo “Teste de Vídeo” as palavras relacionadas abaixo:

[code]
Array
(
[0] => placa
[1] => online
[2] => test video download
[3] => video test
[4] => câmera
[5] => test webcam
[6] => video test online
[7] => test video mp4
[8] => speed
)
[/code]

E caso você queira saber o que significa a consulta XPath no código acima “//*/div[contains(@class, \’card-section\’)]//a/*”:

1) //* – Procurar em todo o código HTML;
2) /div – Por tags Div;
3) [contains(@class, \’card-section\’)] – que contenham a classe “card-section”;
4) //a/* – e então retornar todos os links que estão dentro da classe acima;

Caso deseje saber mais sobre XPath, recomendo o XPath CheatSheet.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *