在PHP脚本中检查Google搜索结果的数量
是否可以使用谷歌API检查PHP脚本中某个短语的谷歌搜索结果数量?我很好奇这是否能以某种方式实现。如果是,我该怎么办 编辑 好的,根据drakin8564建议,这是我的职责:在PHP脚本中检查Google搜索结果的数量,php,search,google-api,google-search,phrase,Php,Search,Google Api,Google Search,Phrase,是否可以使用谷歌API检查PHP脚本中某个短语的谷歌搜索结果数量?我很好奇这是否能以某种方式实现。如果是,我该怎么办 编辑 好的,根据drakin8564建议,这是我的职责: function google(String $text) { // create curl resource $ch = curl_init(); // set url curl_setopt($ch, CURLOPT_URL, 'https://
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
不幸的是,存在一个问题,因为这两个示例都会导致“search results exist”输出,而“7dsa8dsaza”的结果不存在。如何修复它?我不知道用谷歌API怎么做,但是你可以卷曲到{your+search+words} 您应该能够使用DomDocument将html放入对象中。结果的估计数位于id为=“resultStats”的div中 使用php curl函数的示例: DomDocument的文档,在评论部分有一些示例: 编辑:仅从resultStats元素获取数字的示例:
$string = "About 214,000,000 results (0.41 seconds)";
$string = str_replace('About ', '', $string);
$string = str_replace(',', '', $string);
$results = intval($string);
你能给我看一些代码吗?因为我不知道你到底在说什么。我添加了一些文档链接。DomDocument是一个内置的php类,可用于将html或xml解析为对象。Curl用于向指定的url发送请求并检索响应。在这种情况下,来自google的Curl响应将是google搜索页面的html。很抱歉,我是初学者。我以前从未听说过cURL和DomDocument。您能为我的问题提供一些代码和实现的解决方案吗?我上面链接的页面中的第一个curl示例应该使用您请求的url,而不是“example.com”。将$output设置为curl_exec()的返回值后,创建一个DomDocument()实例,如下所示:$xml=new DomDocument();然后将$output变量传递到DomDocument函数loadHTMLFile()中,如下所示:$xml->loadHTMLFile($output);然后可以调用$xml->getElementById('resultStats');这将为您提供div的内容,它近似于搜索结果的数量。
$string = "About 214,000,000 results (0.41 seconds)";
$string = str_replace('About ', '', $string);
$string = str_replace(',', '', $string);
$results = intval($string);