【问题标题】:Node FS read file extracting specific string节点FS读取文件提取特定字符串
【发布时间】:2020-03-18 21:36:31
【问题描述】:

您好,这是我的问题,我有一个大型网络日志,我使用 chrome 进行记录,我已经包含了日志文件的一小部分内容以及我需要提取的信息。

{"pid":2748,"tid":11624,"ts":345045004582,"ph":"I","cat":"devtools.timeline","name":"TimerInstall","s":"t","tts":175817,"args":{"data":{"timerId":3,"timeout":30000.0,"singleShot":true,"stackTrace":[{"functionName":"t.sendFetchRequest","scriptId":"12","url":"https://cvp.twitch.tv/2.17.2/wasmworker.min.js","lineNumber":1,"columnNumber":13925}]}}},
{"pid":2748,"tid":11624,"ts":345045004782,"ph":"I","cat":"devtools.timeline","name":"ResourceSendRequest","s":"t","tts":175969,"args":{"data":{"requestId":"2748.61","frame":"","url":"https://video-weaver.jfk04.hls.ttvnw.net/v1/playlist/CpkEmldXq0KjmFA-Mh5knkt1wdu0JKTUHWlvqmba3F2A20pXKynTgazmqtVdJFYUc_IgRCofliiy9UPE-FPDpwyfwOu6yjkomOty7YNCtE3Ax4myL0Z2va45aW5aPGMkn2ttEWxyUmrLVYC3EZ_e7Wxv6x1oHQB3RSUiiKjOYUBweG1nX3kUamZVsN4kmX5j7YZ3O8z1jAJpNGXNPrr1ADorCctWgefnAtrn4vgIbaiQaTaF0JXUfe7UII98YFpmwIiml6jVj2G9iRB25m2Uux6uMW47YnPGclgVKlLRWWutyJGTZsvco54cTqmzOSJO8drmAlJO3fjejbIXo9UIgHzHIt5DAqrleJ-VZek8L1-D6m9cpDWGGIx6JLedvbqy5uYHj2mhXqfZdlkSL_cq0JrgyDtGt8Y9UmHXERVPTGpGAo82x6EOepIc-XKUw83zdE4HtAjawn2NxJV0lIBa5GENTM1eh70PYVBZDD8x5y2DOkqbUl3iMjVgnCm1fmO-VihwajZJ2lzgy9A2pS683cTcWDw0eRuovRERQJ6rS45i2oJE0a0W4SZuziTCN8eqbWrXioh5nTVwbI7P1QIL7VBjK0552od_xq4fe9Xmxt_pRBfqiRabe4C6VbE_qsUCcLb0Yg_2RXxOESodx90kjW7ZaJxMlPcxk_koilhXudqn5GA3HIUfAmmwg7wQjL-iv2Rswq5PyVW1Z9x1EhBpkHOjQ9D6awqbs-jC0vwJGgxBHDSR_4FUU6cLBjs.m3u8","requestMethod":"GET","priority":"High","stackTrace":[{"functionName":"t.sendFetchRequest","scriptId":"12","url":"https://cvp.twitch.tv/2.17.2/wasmworker.min.js","lineNumber":1,"columnNumber":14017}]}}},
{"pid":2748,"tid":11624,"ts":345045005497,"ph":"X","cat":"v8.execute","name":"V8.HandleInterrupts","dur":5,"tdur":3,"tts":176545,"args":{}},
{"pid":2748,"tid":11624,"ts":345045005738,"ph":"I","cat":"devtools.timeline","name":"TimerRemove","s":"t","tts":176767,"args":{"data":{"timerId":2,"stackTrace":[{"functionName":"","scriptId":"12","url":"https://cvp.twitch.tv/2.17.2/wasmworker.min.js","lineNumber":1,"columnNumber":15401}]}}},
{"pid":2748,"tid":11624,"ts":345045005772,"ph":"E","cat":"v8.execute","name":"RunMicrotasks","tts":176793,"args":{"microtask_count":7}},

这是记录的数据的一小部分,但在记录的 json 中,您会看到这一行 https://video-weaver.jfk04.hls.ttvnw.net/v1/playlist/CpkEmldXq0KjmFA-Mh5knkt1wdu0JKTUHWlvqmba3F2A20pXKynTgazmqtVdJFYUc_IgRCofliiy9UPE-FPDpwyfwOu6yjkomOty7YNCtE3Ax4myL0Z2va45aW5aPGMkn2ttEWxyUmrLVYC3EZ_e7Wxv6x1oHQB3RSUiiKjOYUBweG1nX3kUamZVsN4kmX5j7YZ3O8z1jAJpNGXNPrr1ADorCctWgefnAtrn4vgIbaiQaTaF0JXUfe7UII98YFpmwIiml6jVj2G9iRB25m2Uux6uMW47YnPGclgVKlLRWWutyJGTZsvco54cTqmzOSJO8drmAlJO3fjejbIXo9UIgHzHIt5DAqrleJ-VZek8L1-D6m9cpDWGGIx6JLedvbqy5uYHj2mhXqfZdlkSL_cq0JrgyDtGt8Y9UmHXERVPTGpGAo82x6EOepIc-XKUw83zdE4HtAjawn2NxJV0lIBa5GENTM1eh70PYVBZDD8x5y2DOkqbUl3iMjVgnCm1fmO-VihwajZJ2lzgy9A2pS683cTcWDw0eRuovRERQJ6rS45i2oJE0a0W4SZuziTCN8eqbWrXioh5nTVwbI7P1QIL7VBjK0552od_xq4fe9Xmxt_pRBfqiRabe4C6VbE_qsUCcLb0Yg_2RXxOESodx90kjW7ZaJxMlPcxk_koilhXudqn5GA3HIUfAmmwg7wQjL-iv2Rswq5PyVW1Z9x1EhBpkHOjQ9D6awqbs-jC0vwJGgxBHDSR_4FUU6cLBjs.m3u8

我需要从记录的数据中提取此特定 url,它将始终以 .m3u8 文件扩展名结尾并以 https://video-weaver.jfk04.hls.ttvnw.net/v1/playlist/ 开头

感谢您抽出时间使用 stackoverflow 社区

【问题讨论】:

  • 听起来你可以使用现成的工具grep 来做到这一点。如果您要自己编写代码,您可能只需使用readline 接口逐行读取文件,然后检查每一行是否包含您想要的内容(可能使用正则表达式)。

标签: node.js file readfile fs


【解决方案1】:

这是我的解决方案

    if(line.includes('https://video-weaver.jfk04.hls.ttvnw.net/v1/playlist/')){
        const urlRegex = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)/ig
        const matchedUrls = line.match(urlRegex);
        console.log(matchedUrls[0])
    }```

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-28
    • 1970-01-01
    • 2010-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-02
    相关资源
    最近更新 更多