我继承了一些使用YQL查询从外部站点获取所有HTML的代码。然后过滤数据,然后输出到容器。 YQL查询不返回XML而是返回HTML,我尝试将格式更改为JSON而没有运气。也许我搞砸了语法。
以下是YQL查询:
$.getJSON("http://query.yahooapis.com/v1/public/yql?" +
"q=select%20*%20from%20html%20where%20url%3D%22" +
encodeURIComponent(url) +
"%22&format=JSON&callback=?",
然后将此数据传递给此过滤器函数(这不是整段代码)
function filterData(data) {
data = data.replace(/<?\/body[^>]*>/g, '');
data = data.replace(/[\r|\n]+/g, '');
data = data.replace(/<--[\S\s]*?-->/g, '');
data = data.replace(/<noscript[^>]*>[\S\s]*?<\/noscript>/g, '');
data = data.replace(/<script[^>]*>[\S\s]*?<\/script>/g, '');
data = data.replace(/<p>5\) \{ return; }.* \} \}; <\/p>/, '');
data = data.replace(/<body[^>]*>/g, '');
data = data.replace(/<hr[^>]*>/g, '');
data = data.replace(/<img[^>]*>/g, '');
data = data.replace(/<table[^>]*>/g, '<table>');
return data;
}
我觉得必须有更好的方法将这些返回的HTML数据放入某种模板或其他东西,我对jQuery非常不熟悉,任何帮助都非常感谢!
答案 0 :(得分:1)
您希望将它们作为JSON抓取,以便在jQuery中更轻松地进行处理。您只需要确保将大写JSON
更改为小写json
以从API获取JSON输出。
$.getJSON("http://query.yahooapis.com/v1/public/yql?" +
"q=select%20*%20from%20html%20where%20url%3D%22" +
encodeURIComponent(url) +
"%22&format=json&callback=?",