【问题标题】:Is there a way to take a screenshot of every page on a website?有没有办法对网站上的每个页面进行截图?
【发布时间】:2018-06-07 08:59:10
【问题描述】:

我们有几个旧网站正在进行升级。如果能够截取每个页面,然后 md5 将两个域的结果相加,然后测试呈现的所有内容是否 100% 匹配,这将很有用。

我不确定如何执行此操作 - 我们查看了 cheerio 可以抓取该网站但无法截图,以及可以截图但不能抓取该网站的 nightwatch。有人有这方面的经验吗?

【问题讨论】:

  • @Patrick Roberts - 你在截取维基百科时真的经历过这种情况吗?

标签: javascript phantomjs web-crawler nightwatch.js cheerio


【解决方案1】:

一个简单的解决方案是使用Chrome in headless mode,它也可以通过Puppeteer等许多Node模块进行控制。

取自 Google Developers 页面:

chrome --headless --disable-gpu --screenshot https://www.chromestatus.com/

关于抓取,您可以混合使用 Cheerio 和 Puppeteer 来抓取链接并截取屏幕截图。或者,您可以找到一些允许导出包含所有网站 URL 的站点地图 (example) 的工具,此时应该很容易遍历它们并为每个 URL 截取屏幕截图。

【讨论】:

    【解决方案2】:

    您可以将 StormCrawler 与 Selenium 一起使用并编写自定义 NavigationFilter 来截取屏幕截图并将其 md5sum 存储在文档元数据中。有关 SC+Selenium 的介绍,请参阅tutorial

    下一步可能是编写自定义索引器并将带有 md5 的 URL 转储到数据库或文件中。最后,您可以对较新版本的网站执行相同的操作,并比较表中文件或行的内容。

    【讨论】:

      猜你喜欢
      • 2010-11-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-19
      • 2023-03-21
      • 2022-01-08
      • 1970-01-01
      • 1970-01-01
      • 2016-10-23
      相关资源
      最近更新 更多