是否可以使用Google API检查PHP脚本中某个短语的Google搜索结果数量?我很好奇是否可以做到。如果是,该怎么办?
编辑
好的,根据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”的结果不存在。如何解决?
答案 0 :(得分:0)
我不知道使用Google API的方法,但是您可以使用https://www.google.com/search?q= {your + search + words}
您应该能够使用DomDocument将html放入对象中。估计的结果数量在id为“ =“ resultStats”的div中
使用php curl函数的示例: PHP cURL Docs
DomDocuments文档,在“注释”部分提供了一些示例: PHP DomDocument Docs
编辑:仅从resultStats元素中获取数字的示例:
$string = "About 214,000,000 results (0.41 seconds)";
$string = str_replace('About ', '', $string);
$string = str_replace(',', '', $string);
$results = intval($string);