我正在尝试使用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的编码版本,我很难准确理解错误的位置。
答案 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搜索网址格式不正确,因为它包含Google
和Guice
之间的文字空格字符,Google不接受。其次,网址受到Google robots.txt
的限制,因此即使网址已修复,您也无法从中获得任何结果。