Htmlparser2解析获取链接,然后解析这些链接(node.js)

问题描述:

我在nodejs中使用htmlparser2来解析HTML页面。我解析一个页面以获取到其他页面的链接。然后,我想解析这些链接(解析函数与第一个解析页面上的解析函数不同)以获取我需要的链接旁边的其他信息。 我的问题是,我不知道如何解析多个页面。如果我在数组中放入链接,然后遍历它并为每个页面调用解析器,由于异步性质,它不起作用。即使我在for循环中调用了多个请求,它也不会解析所有的链接,而且我仍然遇到了将请求结果从实际请求中取出的问题。Htmlparser2解析获取链接,然后解析这些链接(node.js)

request(link,function(error,response,body) 
{ 
     var obj = parsingData(body); //parsingData is my parsing function 


     for(var i = 0; i < obj.length; i++){ 
      var newLink = obj[i].link; 

      request(newLink,function(error,response,body) 
      { 
        var pObj = parsingPasma(body); 
        console.log(pObj); 
      } 

      }); 
     //how would I get pObj here, to update obj array + wait for the request to finish? 
     } 

}); 

async.js可以帮助您轻松管理异步代码。在这种情况下,您希望在另一个异步函数完成后运行一些代码,以便您可以轻松使用async.js的瀑布函数。信息可在此处获得:https://caolan.github.io/async/docs.html#waterfall