YQL |为什么我收到语法错误?

时间:2014-05-09 06:20:06

标签: url yahoo yql yahoo-api

我正在尝试使用YQL查询简单的Google搜索,但显然它似乎无效。这是我的确切查询

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 ''']"}}

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

1 个答案:

答案 0 :(得分: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 

URL查询部分分为以下内容(由&分隔):

+--------+---------------------------------------------------+
| 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-encoded %26

网址应如下...... Guice%26ie=utf ....


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