如何使用YQL检索网页结果? [英] How to use YQL to retrieve web results?

查看:129
本文介绍了如何使用YQL检索网页结果?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我知道如何设置select语句(例如:select title,abstract,url from search.web where query =pizza)。但我不知道如何在HTML文件中显示它?



有人可以帮助解释如何显示该语句的结果吗?
代码片段将不胜感激!

顺便说一句,我读过YQL Docs,但它们有些复杂。



 函数YQLQuery(query,callback){
this.query = query;
this.callback = callback ||功能(){};
this.fetch = function(){

if(!this.query ||!this.callback){
throw new Error('YQLQuery.fetch():Parameters可能未定义');


var scriptEl = document.createElement('script'),
uid ='yql'+ + new Date(),
encodedQuery = encodeURIComponent(this .query.toLowerCase()),
instance = this;

YQLQuery [uid] =函数(json){
instance.callback(json);
删除YQLQuery [uid];
document.body.removeChild(scriptEl);
};

scriptEl.src ='http://query.yahooapis.com/v1/public/yql?q='
+ encodedQuery +'& format = json& callback = YQLQuery。 '+ uid;
document.body.appendChild(scriptEl);

};
}

用法:

  //构建您的查询:
var query =select * from rss where url ='somefeed.com'limit 1;

//定义你的回调函数:
var callback = function(data){
var post = data.query.results.item;
alert(post.title);
};

//用查询实例化:
var firstFeedItem = new YQLQuery(query,callback);

//如果你准备好了,然后去:
firstFeedItem.fetch(); // 走!!

更多信息 http://james.padolsey.com/javascript/using-yql-with-jsonp/ strong>


I am having difficulty setting up a simple html file using javascript to display the results of YQL Query.

I understand how to setup the select statement (example: select title,abstract,url from search.web where query="pizza") in the YQL Console. But I don't know how to display it on the html file?

Can somebody help in explaining how to display the results of that statement? Code snippets would be appreciated!

BTW, I've read the YQL Docs but they are somewhat complicated.

解决方案

The only way to retrieve YQL results via client-side JavaScript is JSON-P (or by using an additional proxy). Here's a wrapper for the YQL service:

function YQLQuery(query, callback) {
    this.query = query;
    this.callback = callback || function(){};
    this.fetch = function() {

        if (!this.query || !this.callback) {
            throw new Error('YQLQuery.fetch(): Parameters may be undefined');
        }

        var scriptEl = document.createElement('script'),
            uid = 'yql' + +new Date(),
            encodedQuery = encodeURIComponent(this.query.toLowerCase()),
            instance = this;

        YQLQuery[uid] = function(json) {
            instance.callback(json);
            delete YQLQuery[uid];
            document.body.removeChild(scriptEl);
        };

        scriptEl.src = 'http://query.yahooapis.com/v1/public/yql?q='
                     + encodedQuery + '&format=json&callback=YQLQuery.' + uid; 
        document.body.appendChild(scriptEl);

    };
}

Usage:

// Construct your query:
var query = "select * from rss where url='somefeed.com' limit 1";

// Define your callback:
var callback = function(data) {
    var post = data.query.results.item;
    alert(post.title);
};

// Instantiate with the query:
var firstFeedItem = new YQLQuery(query, callback);

// If you're ready then go:
firstFeedItem.fetch(); // Go!!

More info: http://james.padolsey.com/javascript/using-yql-with-jsonp/

这篇关于如何使用YQL检索网页结果?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆