我正在使用YQL
跟XPATH
查询来获取网页的某些元素的数据:
select *
from html
where url="http://www.desidime.com"
and
xpath='//h5[@class="product_text"]'
我试图在一个简单的HTML页面中显示结果,但我不知道为什么它不起作用。它必须是一些超级愚蠢的错误。
以下是我的HTML页面的代码:
<html>
<head>
<meta content="text/html;charset=utf-8" http-equiv="Content-Type">
<meta content="utf-8" http-equiv="encoding">
<style type='text/css'>
#results {
width: 40%;
margin-left: 30%;
border: 1px solid gray;
padding: 5px;
height: 200px;
overflow: auto;
}
</style>
<script type='text/javascript'>
// Parses returned response and extracts
// the title, links, and text of each news story.
function top_stories(o) {
var output = '';
var items = o.query.results.h5;
var no_items = items.length;
for (var i = 0; i < no_items; i++) {
var title = items[i].a.content;
output += "<h3>" + title + "</h3><hr/>";
}
document.getElementById('results').innerHTML = output;
}
</script>
</head>
<body>
<!-- Div tag for stories results -->
<div id='results'></div>
ishan1
<!-- The YQL statment will be assigned to src. -->
<script src='https://query.yahooapis.com/v1/public/yql?q=select%20*%0Afrom%20html%20%0Awhere%20url%3D%22http%3A%2F%2Fwww.desidime.com%22%20%0Aand%20%0Axpath%3D\"%2F%2Fh5%5B%40class%3D%22product_text%22%5D\"&format=json&callback='></script>
</body>
</html>
我很感激任何帮助。
答案 0 :(得分:0)
似乎编码的XPath查询是错误的。尝试打开您在浏览器中发布的URL时出错。尝试用这个替换它,这修复了错误并且能够为我返回有效的JSON结果:
https://query.yahooapis.com/v1/public/yql?q=select+*+from+html+where+url%3d%22http%3a%2f%2fwww.desidime.com%22+and+xpath%3d%27%2f%2fh5[%40class%3d%22product_text%22]%27&format=json&callback=