Только хочу вытащить JSON Class не все данные - PullRequest
0 голосов
/ 08 февраля 2012

Попытка получить только текст из класса с уникальным именем, используя $.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"
                   },

Как вместо этого просто отобразить «27» в классе «count»ВСЕХ данных на домене?

Ответы [ 2 ]

0 голосов
/ 09 февраля 2012

То, что я должен был сделать и не знал о том, чтобы использовать XPATH в конце инструкции YQL.

    select content from html where url="http://www.resellerratings.com/store/Burkett_Restaurant_Equipment_Supplies"
 and xpath="//span[@class='count']"

См. Здесь

0 голосов
/ 08 февраля 2012

Я не думаю, что у вас есть большой выбор здесь, yql предоставляет вам прокси для запроса ресурсов, которые не находятся в вашем домене .Вы можете создать свой собственный прокси на стороне сервера, который может фильтровать результаты и возвращать желаемый результат в формате json.

...