Rest Query正确,但YQL不会提取数据

时间:2013-04-19 20:26:02

标签: jquery json xpath yql

我找到了示例代码,但我的修改没有得到任何结果。示例代码有效,可在Puppy Tweets

找到

这是我修改它的方式,但没有结果:

<script>
function handleResponse (json) {
    var results = json.query.results.json.results,
        ul = document.getElementsByTagName( 'ul' )[0],
        li = null;
    for ( var i = 0; i < results.length; i++ ) {
        li = document.createElement( 'li' );
        li.innerHTML = results[i].text;
        ul.appendChild( li );
    }
}
</script>
<script src="select * from html where url="http://www.fishingnotes.com/lakeinfo.php?id=38742" and xpath='//div[@class="lbox"]/div[1]/div/span[1]'"></script>

我使用YQL控制台验证Rest Query是否正确。我需要做什么?

2 个答案:

答案 0 :(得分:0)

  

script src =“select * from html where url =”http://www.fishingnotes.com/lakeinfo.php?id=38742“and xpath ='// div [@ class =”lbox“] / div [1] / DIV /跨度[1]'“&GT;

未经测试,但此处看起来嵌套引号存在问题,因此请先将url="http://www.fishingnotes.com/lakeinfo.php?id=38742"更改为url='http://www.fishingnotes.com/lakeinfo.php?id=38742'。然后在xpath中引号内的引号内引用,我不确定它是否可以处理内联。

尝试在变量中存储"lbox"并引用变量而不是直接引用。

答案 1 :(得分:0)

您的主要错误是尝试使用(仅)YQL查询作为JavaScript脚本的来源。这需要是 URL ,可以通过YQL控制台为您提供,如下所示。

Location of rest query URL in YQL console

所以<script>元素可能如下所示:

<script src="http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D%22http%3A%2F%2Fwww.fishingnotes.com%2Flakeinfo.php%3Fid%3D38742%22%20and%20xpath%3D'%2F%2Fdiv%5B%40class%3D%22lbox%22%5D%2Fdiv%5B1%5D%2Fdiv%2Fspan%5B1%5D'&callback=handleResponse"></script> 

JavaScript本身也存在一些小问题。基本工作版本可能如下所示:

<script>
function handleResponse (json) {
    var ul = document.getElementsByTagName( 'ul' )[0],
        li = null;
    for ( var i = 0; i < json.query.count; i++ ) {
        li = document.createElement( 'li' );
        li.innerHTML = json.results[i];
        ul.appendChild( li );
    }
}
</script>

请参阅» this example on JS Bin