虽然尝试开发自己的关键字难度工具时,在从Google查询中获取结果总数时遇到了问题。为了使其尽可能清晰,这里是我想要获取的数字的屏幕:
我在Google自定义搜索API上找不到任何关于如何执行此操作的参考资料,因此我构建了一个小型的刮刀,但我觉得这不是最好的方法。这是我的代码:
<?php
$url = "http://www.google.com/search?q=".$keyword;
$text = file_get_contents($url);
//get string between 2 strings function
function get_string_between($string, $start, $end){
$string = " ".$string;
$ini = strpos($string,$start);
if ($ini == 0) return "";
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
return substr($string,$ini,$len);
}
//fetch the string between "About" and "results"
$res = get_string_between($text, "About", "results");
//keep only numeric characters
$res = preg_replace('/[^0-9]+/', '', $res);
?>
你能建议一个更好的方法吗? (最好使用Google API)
答案 0 :(得分:1)
使用正则表达式:
$params = array('q' => 'shark with lasers that shoot monkeys with balloons on skyscrapers please give me less results asdafasddfg');
$content = file_get_contents('http://www.google.com/search?' . http_build_query($params));
preg_match('/About (.*) results/i', $content, $matches);
echo !empty($matches[1]) ? $matches[1] : 0;
// output: 14,300
我无法在他们的API中找到任何内容。请注意,这是针对Google TOS的。 Bing的API将为您提供结果计数。