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

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

}); 

最佳答案

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

关于json - Htmlparser2 解析以获取链接,然后解析这些链接(node.js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44287718/

相关文章:

javascript - 满足 promise 时运行 frisby 测试

android - Retrofit Parsing 中的 url 没有响应

ios - UICollectionview 在错误的地方更新随机图像

javascript - 鼠标选择时突出显示 Pdf 文件中的文本

c++ - 使用 boost 属性树读取 int 数组

javascript - Electron - preload.js 未加载并且在 Windows 10 上发生错误

java - 使用 Jackson "Unexpected token (START_OBJECT), expected VALUE_STRING: Expected array or string."使用 LocalDateTime 将 JSON 解析为 POJO

c++ - 编译非常简单的 boost::spirit 语法时出错

javascript - 组合 JSON 数据集

javascript - 使用 JavaScript 呈现整个页面是一种好习惯吗?