Google文档中的XPath查询与HTML源不匹配
使用XpathBuilder我可以构造一个简单的搜索引擎查询并使用XPath将数据从搜索结果中提取出来。我在Google Doc电子表格here中有一些简单的示例,它在各种搜索引擎上运行查询“XPath教程”,并尝试提取每个搜索引擎返回的结果数量。Google文档中的XPath查询与HTML源不匹配
中,谷歌文件的代码如下:
=importxml("http://www.google.com/search?q="xpath+tutorial"&num=30&pws=0",
"//div[@id='resultStats']")
=importxml("http://www.bing.com/search?q=xpath+tutorial&count=30",
"//span[@class='sb_count']")
=importxml("http://search.yahoo.com/search?p=xpath+tutorial&n=30",
"//span[@id='resultCount']")
有关于这一点,我不明白有些古怪。首先,Google搜索不会返回任何结果,但XPath查询看起来不错。事实上,有许多在线教程,其中推荐了我在这里完成的工作。
雅虎查询返回正确的结果,这是唯一的结果。
了Bing Xpath查询发现不匹配的Bing web page给出的结果,即使有仅XPath查询匹配一个XML节点结果的数量。更多细节请见spreadsheet here
这是哪里都出错了?
试试这个....
=importxml("http://www.google.com/search?q='xpath+tutorial&num=30&pws=0'", "//div[@id='resultStats']")
哇,好吧,这工作。似乎我的代码和你的唯一区别是围绕URL中的键/值对的额外引号。 – snim2 2012-08-21 21:57:27
由于URL中未编码的双引号,Google one可能不起作用。由于importxml
字符串分隔符是双引号,所以这可能不起作用。将双引号编码为%22
。
不知道Bing。最好的猜测是你的XPath正在工作,但是Bing出于某种原因向你和谷歌文档返回了不同的结果。
好吧,我已经把引号关掉了,所以现在这条语句读取'= importxml(“http://www.google.com/search?q=xpath+tutorial&num=30&pws=0”,“// div [@ id ='resultStats']“)'和电子表格中的输出仍然是相同的:( – snim2 2012-07-15 19:33:07
@ snim2我唯一能想到的是Google搜索结果页面发送给Google文档(这可能与您的不同在你的浏览器中看到)没有包含一个id属性为“resultStats”的div – 2012-07-20 18:16:02
这是可能的,但我不明白为什么会这样,而且这个清楚/使用/工作,因为有很多教程推荐我使用的方法! – snim2 2012-07-22 19:01:05
Downvoting因为没有代码显示。 – 2012-07-13 10:05:52
这段代码全部都在Google Doc中,它也显示了结果并给出了搜索引擎的源代码的一些细节。我现在已经为这个问题添加了一些内容。 – snim2 2012-07-13 11:12:11