2010-04-16 33 views
2

我想解析来自google搜索博客的结果数量。请有人帮助我!如何解析谷歌博客搜索的结果?

http://blogsearch.google.com/blogsearch?hl=en&ie=UTF-8&q=a&btnG=Search+Blogs

返回一个完整的页面。在右侧,您可以看到(结果1 - 10大约2,504,830,546为a。(0.05秒))。

我怎么能得到2,504,830,546 ???

谢谢。 此致敬礼。

+0

你不会得到那么多“抱歉,谷歌不会提供超过1000任何查询的结果(你要求从8000开始的结果)“ – ariefbayu 2010-04-16 15:02:11

+0

我认为Jooj想要得到一个'2,5​​04,830,546'字符串。我对吗 ? – hsz 2010-04-16 15:04:02

+0

当然,但我只需要进一步的统计结果... – Jooj 2010-04-16 15:05:20

回答

2

虽然通常不应该用正则表达式来解析HTML文件,但在这种情况下,您可能会发生异常(因为页面仍然使用<font>,所以结构无论如何都会中断,而XML解析器也无济于事)。这件作品在这里代码假定您已经获取的网页,并把它放入字符串变量$webpage_as_string

preg_match('|Results.+?of +about +\<b\>([0-9,]+)\<\/b\> +for|', $webpage_as_string, $matches); 

$matches[1]将包含结果为字符串。您需要过滤掉逗号并将其解析为数字......当然,只要Google更改网站模板,该代码就会中断。

http://php.net/manual/en/function.preg-match.php包含功能的详细信息,在手动模式是在这里:http://www.php.net/manual/en/reference.pcre.pattern.syntax.php

+0

出现错误:preg_match()[function.preg-match]:分隔符不能是字母数字或反斜杠 – Jooj 2010-04-16 15:32:19

+0

哎呀,对不起,忘记了正则表达式模式的分隔符...... php不久前对我来说。固定它,虽然我没有测试它。 – orithena 2010-04-17 15:51:37

+0

谢谢你maligree :) – Jooj 2010-04-18 13:43:32

0

为什么不使用他们的search API其中包括博客搜索?

+0

我怎么能使用这个API来获得我需要的东西? – Jooj 2010-04-16 15:34:48

+0

查看他们的文档:http://code.google.com/apis/ajaxsearch/documentation/它解释了您需要执行的操作,并且有示例。 – 2010-04-16 16:13:07

+0

感谢您的文档,但它似乎像这个API不返回“总结果数量”! – Jooj 2010-04-17 09:46:15

0

,如果你有wget

$ wget -O- -q "http://blogsearch.google.com/blogsearch?hl=en&ie=UTF-8&q=a&btnG=Search+Blogs" | awk -vRS="Browse Top Stories|Blog results" -vFS='about|for' '/Results/{gsub(/<b>|<\/b>/,"",$2);print $2}' 
2,493,517,127