有没有人使用 Google Chrome Lighthouse的 Node CLI 版本来自动化网站审核过程?(我对可访问性审计最感兴趣,但我认为这个问题没有那个警告)。
我想知道是否有办法将其设置为抓取整个网站,而不仅仅是页面,如果您使用 Lighthouse 或任何类似的审计应用程序完成了此操作,您能否分享一些提示或示例?
如果您还没有,当我们在我们的组织中发现它时,人们会对此感兴趣吗?
有没有人使用 Google Chrome Lighthouse的 Node CLI 版本来自动化网站审核过程?(我对可访问性审计最感兴趣,但我认为这个问题没有那个警告)。
我想知道是否有办法将其设置为抓取整个网站,而不仅仅是页面,如果您使用 Lighthouse 或任何类似的审计应用程序完成了此操作,您能否分享一些提示或示例?
如果您还没有,当我们在我们的组织中发现它时,人们会对此感兴趣吗?
当然!
我们使用它来将我们的网站与竞争对手进行比较,使用一个非常简单的 nodejs 应用程序,运行分析然后将结果存储到 elasticsearch 中,最后我们使用 kibana 进行数据可视化。
这里的代码源:https ://github.com/ebuildy/lighthouse-urls-bench/
灯塔部分在这里https://github.com/ebuildy/lighthouse-urls-bench/blob/main/src/runnerLighthouse.mjs:
import lighthouse from 'lighthouse'
import chromeLauncher from 'chrome-launcher'
const runnerResult = await lighthouse(urlToCrawl, lhOptions, lhConfig)
// transform results, keep only valid audits
const auditsList = Object
.values(runnerResult.lhr.audits)
.filter(audit => {
return typeof audit.numericValue != 'undefined'
}).map(audit => {
return {
id: audit.id,
title: audit.title,
numericValue: audit.numericValue,
numericUnit: audit.numericUnit,
displayValue: audit.displayValue
}
})
await store({
'@timestamp' : new Date(),
device: {
type: 'desktop'
},
url : urlToCrawl,
auditsList
})
您可以使用本文中建议的方法。
您可以在配置文件中添加更多 URL 来抓取所有网站页面。您还可以从 BigQuery 中的所有测试结果中提取平均值,以获取所有网站页面的摘要。
FWIW 我创建了一个 Python 脚本,它将 Lighthouse 4 JSON 审计文件转换为通用日志格式,并在每次运行时附加结果。
https://gist.github.com/joelhsmith/c36ad701d5d9beb598962dc62cc3d2df
下一部分是让它定期运行。为此,我让它在 Docker 容器中运行。
然后分析日志。我们将它们发送到 Splunk。我在 Splunk 中做到了这一点并取得了一些成功。搜索查询是史诗般的。它还允许我们制作一些非常漂亮的仪表板可视化。现在尝试在 Kibana 中做同样的事情。
然后,我在 Splunk 中设置了分数变化时的电子邮件警报。
如果将来有人希望以此为基础,希望这会有所帮助。我没有像我想要的那样好的整个解决方案,但是如果你想要更多细节,请随时联系我,未来的人类。
我认为@tzam 的帖子也将是其中一些很酷的选择。