【问题标题】:Can I use WGET to generate a sitemap of a website given its URL?我可以使用 WGET 生成给定 URL 的网站的站点地图吗?
【发布时间】:2011-04-26 07:47:18
【问题描述】:

我需要一个可以抓取网站并以纯文本或类似格式返回所有抓取页面列表的脚本;我将作为站点地图提交给搜索引擎。我可以使用 WGET 生成网站的站点地图吗?或者是否有一个 PHP 脚本可以做到这一点?

【问题讨论】:

    标签: php wget web-crawler bots


    【解决方案1】:

    你可以使用这个 perl 脚本来解决这个问题:http://code.google.com/p/perlsitemapgenerator/

    【讨论】:

    • 它会通过扫描文件系统生成,但不会“爬取”。我要抓取的网站是动态的。
    【解决方案2】:
    wget --spider --recursive --no-verbose --output-file=wgetlog.txt http://somewebsite.com
    sed -n "s@.\+ URL:\([^ ]\+\) .\+@\1@p" wgetlog.txt | sed "s@&@\&@" > sedlog.txt
    

    这将创建一个名为sedlog.txt 的文件,其中包含在指定网站上找到的所有链接。您可以使用 PHP 或 shell 脚本将文本文件站点地图转换为 XML 站点地图。调整 wget 命令的参数(接受/拒绝/包含/排除)以仅获取您需要的链接。

    【讨论】:

    • +1 不能完全使用它,因为它给了我一堆错误(可能是因为不同的 wget/sed 版本)。但是一旦我做了一些调整,它就像一个魅力。谢谢!
    • 您应该使用--wait=1在请求之间添加一个小的延迟,否则可能会影响站点的性能。
    • 结合teeunix.stackexchange.com/a/128476/312058你也可以在stdout中看到输出或者tail -f更好
    • @Julian 是的,我遇到了同样的问题。在 macOS 上,我必须使用 gsed 而不是内置的 sed。感谢您的提示!
    猜你喜欢
    • 1970-01-01
    • 2020-05-22
    • 2010-09-06
    • 1970-01-01
    • 2017-11-29
    • 1970-01-01
    • 2019-10-18
    • 1970-01-01
    • 2011-03-29
    相关资源
    最近更新 更多