1

此 YQL 语句(在 YQL 控制台中执行)从 TMDB 网站中挑选出电影的名称和年份。

select content from html where url="http://www.themoviedb.org/movie/27205" and xpath='//h3[@id="year"]|//h2[@id="title"]/a'

结果返回如下:

"results": {
  "a": "Inception",
  "h3": "(2010)"
}

是否有任何简单的方法可以将结果标记为“名称”和“年份”,而不是从中获取的 html 元素?

干杯!

4

1 回答 1

2

目前没有简单的方法来快速为返回的标签设置别名。目前最好的方法是创建一个自定义数据表,使您的查询到 TMDB 并将结果(使用 Javascript,在一个<execute>块中)转换为您想要的任何内容。

例如,我为您创建了一个快速自定义表,它使用您选择的标签 (nameyear) 返回结果。它还删除了一年左右的括号。要对其进行测试运行,请使用:

use "store://github.com/tmdb-jp" as tmdb;
select * from tmdb where movieid="27205"

生成的 JSON 具有以下结构(在通常的 YQL 响应中):

"movie": {
 "title": "Inception",
 "year": "2010"
}

如果您想自己创建一个数据表,或者只是看看其中涉及什么,那么源代码在我的 github 上。此外(这可能很有用)您可以一次查询多部电影:

use "store://github.com/tmdb-jp" as tmdb;
select * from tmdb where movieid in ("27205","9802")

PS store://URL 只是意味着数据表存储在 Yahoo! 的“云”中,以确保速度和可靠性。您当然可以使用普通的http://URL(例如通过 github )。

于 2010-07-20T20:49:28.647 回答