如何下载完整的网站?

Sim*_*onW 10 testing automation qa wget web-testing

在修复网站代码以使用CDN(将所有网址重写为图像,js和css)之后,我需要测试域中的所有页面以确保从CDN获取所有资源.

所有网站页面都可以通过链接访问,没有孤立的页面.

目前我正在使用FireBug并检查"网络"视图...

是否有一些自动方式来提供域名并请求域的所有页面+资源?

更新:

好的,我发现我可以这样使用wget:

wget -p --no-cache -e robots=off -m -H -D cdn.domain.com,www.domain.com -o site1.log www.domain.com
Run Code Online (Sandbox Code Playgroud)

选项说明:

  • -p - 也下载资源(图像,CSS,js等)
  • --no-cache - 获取真实对象,不要返回服务器缓存对象
  • -e robots=off- 无视robotsno-follow指示
  • -m - 镜像站点(点击链接)
  • -H - span hosts(也可以关注其他域名)
  • -D cdn.domain.com,www.domain.com - 指定要遵循的女巫域名,否则将遵循页面中的每个链接
  • -o site1.log - 登录文件site1.log
  • -U "Mozilla/5.0" - 可选:假用户代理 - 如果服务器为不同的浏览器返回不同的数据,则非常有用
  • www.domain.com - 要下载的网站

请享用!

Ale*_*ian 9

wget文件中有此位:

实际上,要下载单个页面及其所有必需品(即使它们存在于不同的网站上),并确保该批次在本地正确显示,除了'-p'之外,该作者还喜欢使用一些选项:

      wget -E -H -k -K -p http://site/document
Run Code Online (Sandbox Code Playgroud)

关键是-H选项,这意味着--span-hosts -> go to foreign hosts when recursive.我不知道这是否也代表正常的超链接或仅代表资源,但你应该尝试一下.

您可以考虑替代策略.您无需下载资源来测试它们是否从CDN引用.您可以获取您感兴趣的页面的源代码(您可以使用wget,或者curl,或者其他),并且:

  • 使用库解析它 - 哪一个取决于您用于编写脚本的语言.检查每个<img />,<link />以及<script />CDN链接.
  • 使用正则表达式来检查资源URL是否包含CDN域.看到这个:),虽然在这种有限的情况下,它可能不会过于复杂.

您还应检查所有CSS文件的url()链接 - 它们也应指向CDN图像.根据您的应用程序的逻辑,您可能需要检查JavaScript代码是否不会创建任何不是来自CDN的图像.