2014-05-09 59 views
-1

我正在尝试使用YQL查询简单的Google搜索,但显然看起来不起作用。这里是我的确切查询YQL |为什么我得到一个语法错误?

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D%27https%3A%2F%2Fwww.google.com/search?q=Google+Guice&ie=utf-8%27%0A&format=json 

和错误是

{"error":{"lang":"en-US","description":"Query syntax error(s) [line 1:74 mismatched character ' ' expecting ''']"}} 

的误差手一指1:74这是近20where。这也是URL的编码版本,我很难准确理解错误的位置。

+0

你真的应该可以通过一点探索来解决这个问题。什么是*实际*未编码查询?请注意报价后的最后一个字符(%27)。 – user2864740

回答

1

这是你的网址:

http://query.yahooapis.com/v1/public/yql? 
q=select%20*%20from%20html%20where%20url%3D%27https%3A%2F%2F 
www.google.com/search?q=Google+Guice&ie=utf-8%27%0A&format=json 

查询部分分为以下(由&分离)的网址:

+--------+---------------------------------------------------+ 
| q  | select%20*%20from%20html%20where%20url%3D%27https | 
|  | %3A%2F%2Fwww.google.com/search?q=Google+Guice  | 
+--------+---------------------------------------------------+ 
| ie  | utf-8%27%0A          | 
+--------+---------------------------------------------------+ 
| format | json            | 
+--------+---------------------------------------------------+ 

正如你所看到的,YQL没有收到完整的查询字符串正如你想要的那样。这是因为应该应该是查询字符串的一部分的&字符不是url编码的%26

URL应该看起来像...... Guice%26ie=utf ...。


旁白:还有,你将要面对的一些其他问题。首先,嵌入到查询中的Google搜索网址格式不正确,因为它将包含GoogleGuice之间的文字空格字符,Google不接受该字符。其次,该网址受Google的robots.txt限制,因此即使网址已修复,您也无法从该网址获得任何结果。

相关问题