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

时间:2017-05-31 14:39:18

标签: json node.js parsing html-parsing html-parser

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

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?
        }

}); 

1 个答案:

答案 0 :(得分:0)

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