【问题标题】:How to find sitemap in each domain and sub domain using python如何使用python在每个域和子域中查找站点地图
【发布时间】:2020-02-22 18:45:42
【问题描述】:

我想知道如何使用 python 在每个域和子域中查找站点地图? 一些例子:

abcd.com/sitemap.xml
abcd.com/sitemap.html
abcd.com/sitemap.html
sub.abcd.com/sitemap.xml

等等

最可能的站点地图名称、位置和扩展名是什么?

【问题讨论】:

  • 为什么是负分?

标签: python beautifulsoup scrapy sitemap pyspider


【解决方案1】:

请先查看robots.txt 文件。这是我通常做的。

有些域确实提供了不止一个站点地图,并且有些情况下有超过 200 个 xml 文件。

请记住,根据sitemap.org 上的常见问题解答,可以压缩站点地图文件。因此,您可能也想考虑sitemap.xml.gz!

【讨论】:

  • 我想知道所有可能的名称和扩展名我们没有 robots.txt 或 robots.txt 我们没有任何站点地图值您如何看待这种情况,我的意思是最多的名称和扩展名(我需要最常用的名称、扩展名和站点地图的位置)?
  • 任何 robots.txt 解析器,例如 github.com/scrapy/protego,都应该能够从给定的 robots.txt 文件中提取站点地图 URL。如果一个网站没有robots.txt 文件,要么它没有站点地图,要么他们的站点地图可能已经过时,在这种情况下你最好忽略站点地图。
  • 感谢您亲爱的@Gallaecio 的评论,您对尝试预测站点地图名称和位置以查找站点地图有什么想法?我使用抓取,但我认为如果在这种情况下找到站点地图,我不需要抓取整个网站?你有什么意见?我想通过重新组合我的方法找到非常好的页面。
  • “你在想什么尝试预测站点地图名称和位置来查找站点地图?”正如我所说,如果站点地图不在robots.txt 中,它可能已经过时(即网站决定停止生成站点地图,但没有费心将其删除)。对于您的用例而言,过时的站点地图是否比没有站点地图更好,这取决于您。
【解决方案2】:

您应该尝试使用 URLLIB robotsparser

import urllib.robotparser

robots = "branndurl/robots.txt"
    rp = urllib.robotparser.RobotFileParser()
    rp.set_url(robots)
    rp.read()
    rp.site_maps()

这将为您提供 robots.txt 中的所有站点地图

大多数网站都拥有那里的站点地图。

【讨论】:

    猜你喜欢
    • 2016-05-18
    • 2012-09-21
    • 1970-01-01
    • 1970-01-01
    • 2014-04-30
    • 1970-01-01
    • 1970-01-01
    • 2014-12-04
    • 2022-12-03
    相关资源
    最近更新 更多