如何在特定URL下查找所有网站。

时间:2018-09-02 10:06:37

标签: python html web web-crawler

我真的很想知道如何找到特定URL下的所有网站。 例如,我有一个https://a.b/c的URL,并且我想查找其下的所有网站,例如https://a.b/c/dhttps://a.b/c/d/e。 有一些方法可以做到这一点吗? 非常感谢!

3 个答案:

答案 0 :(得分:1)

如果页面与根目录中的页面的超链接互连,则可以通过跟踪内部链接轻松spider网站。这将要求您加载根页面,解析其超链接,加载这些页面并重复进行,直到未检测到新链接。您将需要实施循环检测,以避免对已经爬网的页面进行爬网。蜘蛛礼貌地行动并不容易。许多网站通过robots.txt文件或其他方式公开元数据,以指示不希望对其网站的哪些部分建立索引,并且它们可能会运行缓慢,以避免消耗过多的服务器资源。您应该尊重这些规范。

但是,请注意,如果没有从站点显式链接所有页面,则没有通用的方法枚举所有页面。为此,需要:

  • 该站点启用目录列表,因此您可以标识存储在这些路径上的所有文件。大多数站点不提供此类服务;或
  • 与网站或网络服务器的运营商合作,找到这些路径下列出的所有页面;或
  • 对这些路径下所有可能的URL进行蛮力搜索,这是一个有效的无边界集合。进行这样的搜索对站点的操作员而言并不礼貌,从时间和精力上都是禁止的,并且不可能是详尽无遗的。

答案 1 :(得分:0)

根据@Cosmic Ossifrage的建议,您可以查找站点地图。通常是根目录(https://www.example.com/robots.txt)上robots.txt中的引用。可能会有一个指向站点地图xml的链接,其中包含站点上的链接列表,这些链接可能会也可能并不详尽。

答案 2 :(得分:0)

使用Xenus Link Sleuth,WebCheck和DRKSpider。

这是下面的链接

  1. 链接侦探:http://home.snafu.de/tilman/xenulink.html
  2. WebCheck:https://arthurdejong.org/webcheck/
  3. DRKSpider:http://www.drk.com.ar/spider.php