首页 > 解决方案 > 如何查找某个 URL 下的所有网站。

问题描述

我真的很想知道如何找到某个 URL 下的所有网站。例如,我有一个https://ab/c的 URL ,我想找到它下面的所有网站,例如https://ab/c/dhttps://ab/c/d/e。有一些方法可以做到这一点吗?非常感谢!

标签: pythonhtmlwebweb-crawler

解决方案


如果页面与来自根页面的超链接相互连接,您可以通过跟踪内部链接轻松地取站点。这将要求您加载根页面,解析其超链接,加载这些页面并重复,直到没有检测到新链接。您将需要实施循环检测以避免抓取您已经抓取的页面。蜘蛛的礼貌操作并非易事;许多站点通过 robots.txt 文件或其他方式公开元数据,以表明他们不希望将其站点的哪些部分编入索引,并且它们可能会运行缓慢以避免消耗过多的服务器资源。你应该尊重这些规范。

但是,请注意,如果没有从站点明确链接,则没有通用方法可以枚举所有页面。这样做需要:

  • 该站点启用目录列表,因此您可以识别存储在这些路径上的所有文件。大多数网站不提供此类服务;或者
  • 与网站运营商或网络服务器合作以查找这些路径下列出的所有页面;或者
  • 对这些路径下所有可能的 URL 进行暴力搜索,这是一个有效的无界集合。实施这样的搜索对网站的运营商来说是不礼貌的,在时间和精力方面是令人望而却步的,而且不可能详尽无遗。

推荐阅读