通过以前的帖子和其他搜索的结果,我似乎能够得到我想要的东西,但它似乎是一个数据对象,而不是我可以分配给变量的文本。
我在我正在工作的环境中仅限于javascript,我想要做的是在返回的数据上使用字符串函数,以便我可以搜索某些术语。
这是返回数据对象的url格式 - 结果是要求您打开或保存文本文件:
http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%20%3D%20%22http://www.redrag.info/index.htm%22%20and%20xpath%3D%22*%22&format=xml&callback=cbfunc
(如果您愿意,可以在上面的示例中替换我的网址 - http://www.redrag.info/index.htm -
我可以使用一些javascript文档函数将此输出分配给变量,而不是打开文本文件吗?
感谢。
答案 0 :(得分:0)
删除callback=cbfunc
并定义你的回调函数。并且您可以从format=json
更改format=xml
,因为它很容易处理。现在,您可以使用该数据获取数据并执行任何操作
$.getJSON("http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%20%3D%20%22http://www.redrag.info/index.htm%22%20and%20xpath%3D%22*%22&format=json",
function(data) {
alert(data);
}
);
答案 1 :(得分:0)
这需要JSONP(将响应解析为内联脚本),使用像jQuery这样的库是微不足道的:
$.ajax({
url: the_url,
jsonpCallback: 'cbfunc',
dataType: 'jsonp'
})
.success(function(data) {
alert(data.query.created);
});
答案 2 :(得分:0)
除了@kriyeta上面的第一个答案之外,我的代码运行良好,如下代码段所示:
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
</head>
<body>
<script>
var inputxt="http://www.redrag.info/index.htm";
var pagesrc;
$.getJSON("http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%20%3D%20%22"+inputxt+"%22%20and%20xpath%3D%22*%22&format=json",
function(data) {
pagesrc=JSON.stringify(data);
alert(pagesrc);
}
);
</script>
</body>
</html>
但当我用作目标网址时:https://ajax.googleapis.com/ajax/services/search/images?v=1.0%26q=DOG
(如果您将其放入浏览器地址栏以查看实际页面,则需要将%26更改回&amp;)我会得到一个&#39 ;疑似服务滥用条款&#39;消息,因为我认为Google可以确定它是自动请求而不是人工请求。
我想要实现的是一个脚本,我可以使用AI虚拟助手设施,我正在开发知识库。如果谷歌网址没有失败,那么上面的代码就是我需要的。
这是回答访客的请求,例如“给我看一张狗的照片”。另一个AI机器人 - &#39; Jeanie&#39;在https://ask.pannous.com/
完成了这一点 - 当被问到相同的问题时,它会从(我正在假设)Google图片中检索图片 - 所以我知道它可以完成并且我渴望拥有类似的设施
我认为如果我能找到一个不依赖于jQuery库的解决方案,那么它可能会起作用。
感谢任何想法。谢谢。