是否有可能发现一个 URL 的所有文件和子目录?

是否有可能发现一个 URL 的所有文件和子目录?

我想知道是否有一个软件可以用来发现给定 URL 的所有文件和子目录?

例如,给定www.some-website.com/some-directory/,我想查找/some-directory/目录中的所有文件以及中的所有子目录(及其文件)/some-directory/

这将适用于 HTTP 协议。

答案1

在 CMS 类型的系统中,没有目录和子目录,只有与分配给您请求的信息的信息节点/ID 相对应的路由。这些路由是根据用于访问该信息的分类方法动态创建的(最新帖子、类别、标签、品牌列表以及网站所有者可能用来帮助您找到最终节点的任何其他展示分类方法)

因此,您正在寻找的信息可能由多种变化表示,具体取决于用于访问终端节点(虚拟页面)的路由

为了让网站所有者满意,避免服务器超载,请效仿 Google 查找 sitemap.xml 文件。如果网站所有者遵循最佳实践,它将是网站上可用的规范网页的完整列表,这意味着您只需访问最终虚拟页面一次,而不必下载同一内容的多个副本。

答案2

这取决于您要抓取的站点上的服务器是如何设置的。URL 并不总是与文件所在的物理目录成比例。

通常情况下,如果服务器目录没有创建索引文件,服务器会返回目录内容。如果创建了索引文件,则几乎不可能直接获取目录内容。

但是,您可以使用 Internet Download Manager 等网站爬虫,通过网站 HTML 内容中提供的链接来爬取网站。IDM 会为您检索网站上的所有 HTML/图像/多媒体内容/txt/PDF 文件。

在抓取之前请务必检查他们的服务条款。

答案3

如果您使用的是 *nix,wget 可以完成此操作。它是免费且开源的。您可能也可以在 Windows 上获得它,但我不确定。

当然,限制与上述相同。如今大多数网站没有直接映射到目录结构的 URL,但您可以使用 wget 有效地镜像整个网站。也就是说,您可以从可以访问的页面下载网站上所有公开可用且超链接的空间。

如果检测到未经授权的爬虫程序以太快的速度镜像其网站,许多网站都会阻止您。因此您可能需要礼貌一点 - 让爬虫程序每秒只下载几页。

相关内容