我试图建立一个刮刀自动监控网络项目。
到目前为止一切顺利,脚本正在运行,但现在我想添加一个功能,自动分析我在项目中使用的库。这项工作最强大的脚本是wappalyser。他们有一个node包(https://www.npmjs.com/package/wappalyzer),它写的是你可以把它和pupperteer结合使用。
我设法运行pupperteer并在控制台中记录站点的源代码,但我没有正确的方法将源代码传递给wappalyzer分析函数。
你们能给我点提示吗?
我尝试了这段代码,但我得到了一个TypeError:url.split不是函数
function getLibarys(url) {
(async () => {
const browser = await puppeteer.launch({ headless: true });
const page = await browser.newPage();
await page.goto(url);
// get source code with puppeteer
const html = await page.content();
const wappalyzer = new Wappalyzer();
(async function () {
try {
await wappalyzer.init()
// Optionally set additional request headers
const headers = {}
const site = await wappalyzer.open(page, headers)
// Optionally capture and output errors
site.on('error', console.error)
const results = await site.analyze()
console.log(JSON.stringify(results, null, 2))
} catch (error) {
console.error(error)
}
await wappalyzer.destroy()
})()
await browser.close()
})()
}
2条答案
按热度按时间fykwrbwg1#
通过使用wappalyzer的示例代码修复了它。
brjng4g32#
我不知道你是否还需要一个答案。但这是wappalyzer的一位合作者告诉我的:
通常你会这样运行Wappalyzer:
如果你想使用你自己的浏览器示例,你可以跳过wappalyzer.init()并将示例分配给wappalyzer.browser:
你可以找到讨论here。希望这对你有帮助。