使用[jsdom + qs]刮刮html

时间:2012-07-17 20:51:41

标签: javascript node.js web-scraping jsdom

我是使用jsdom和querystring的新手。我正在尝试为所有iframe html标记中的所有soundcloud track_id抓取一个页面。以下代码记录undefined,因为第一个iframe不是soundcloud播放器。

我如何......

  1. 修改代码以检索所有iframe实例
  2. 使用jsdom / qs检查http://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2Fsoundcloud是否存在。 (我可以使用if字符串包含js test的字符串类型,但我认为使用jsdom / qs有更好的方法)。

    jsdom.env({
     html: 'A_URL',
     scripts: [
       'http://code.jquery.com/jquery-1.5.min.js'
     ],
     done: function(errors, window) {
      var $ = window.$;
      var src = $('iframe').attr('src');
      var aRes = qs.parse(decodeURIComponent(url.parse(src).query)).url.split('/');
      var track_id = aRes[aRes.length-1];
    
     console.log("track_id =", track_id);
     }
    });
    

1 个答案:

答案 0 :(得分:0)

$('iframe').each(function(index, element) {
  if (element.attr['src'].match(/soundcloud/)) {
    // do your stuff
    return false; // if there's only one relevant iframe
  }
}