【问题标题】:YQL | why I'm getting a syntax error?YQL |为什么我收到语法错误?
【发布时间】:2014-05-09 06:20:05
【问题描述】:

我正在尝试使用 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的编码版本,我很难准确理解错误在哪里。

【问题讨论】:

  • 你真的应该能够通过一点点侦查来解决这个问题。 实际未编码查询是什么?注意引号后的最后一个字符 (%27)。

标签: url yahoo yql yahoo-api


【解决方案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 搜索 URL 格式不正确,因为它将包含 GoogleGuice 之间的文字空格字符,Google 不接受。其次,该 URL 受 Google 的robots.txt 限制,因此即使 URL 被固定,您也无法从那里得到任何结果。

【讨论】:

    猜你喜欢
    • 2020-02-11
    • 1970-01-01
    • 2020-09-04
    • 2022-01-23
    • 1970-01-01
    • 2019-07-24
    • 1970-01-01
    • 2021-06-20
    • 2017-01-16
    相关资源
    最近更新 更多