使用[jsdom+qs]抓取html

Scraping html using [jsdom + qs]

本文关键字:抓取 html jsdom+qs 使用      更新时间:2023-11-09

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

我如何…

  1. 修改代码以检索所有iframe实例
  2. 使用jsdom/qs检查是否存在http://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F或仅存在soundcloud。(我可以使用if字符串包含js测试的字符串类型,但我认为使用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);
     }
    });
    
$('iframe').each(function(index, element) {
  if (element.attr['src'].match(/soundcloud/)) {
    // do your stuff
    return false; // if there's only one relevant iframe
  }
}