尝试仅使用$.getJSON
和YQL从具有唯一名称的类中提取文本。现在它可以提取所有数据并删除标签。任何人都知道这是否可以实现?
function filterData(data){
// filter all the nasties out
// no body tags
data = data.replace(/<?\/body[^>]*>/g,'');
// no linebreaks
data = data.replace(/[\r|\n]+/g,'');
// no comments
data = data.replace(/<--[\S\s]*?-->/g,'');
// no noscript blocks
data = data.replace(/<noscript[^>]*>[\S\s]*?<\/noscript>/g,'');
// no script blocks
data = data.replace(/<script[^>]*>[\S\s]*?<\/script>/g,'');
// no self closing scripts
data = data.replace(/<script.*\/>/,'');
// the below doesn't work of course, but if I could use jQuery I would do as follows:
data = $(data).find('.count').text();
return data;
}
以下是它提取的JSON的一部分:
"div": [
{
"id": "store-page-rating",
"div": [
{
"id": "store-six-month-rating",
"div": {
"style": "float:left;",
"span": {
"class": "rating",
"img": {
"alt": "Rating 8.68/10",
"class": "stars fourhalf",
"src": "http://images4.resellerratings.com/CDN-1328669559/static/images/blankstar.gif",
"style": "width: 80px; height: 16px;",
"title": "Rating 8.68/10"
},
"span": [
{
"class": "count",
"content": "27"
},
如何在课程“count”上显示“27”而不是域上的所有数据?
答案 0 :(得分:0)
我认为您在此处没有多少选择,yql
为您提供代理,以查询不在您的域上的资源。您可以创建自己的服务器端代理,可以过滤结果并以json
格式返回所需的输出。
答案 1 :(得分:0)
我必须做的并且不知道的是在YQL语句结束时使用XPATH。
select content from html where url="http://www.resellerratings.com/store/Burkett_Restaurant_Equipment_Supplies"
and xpath="//span[@class='count']"