代码之家  ›  专栏  ›  技术社区  ›  Ava Barbilla

WGET-错误414:请求URI太大

  •  1
  • Ava Barbilla  · 技术社区  · 8 年前

    wget 从访问链接列表 文件链接示例如下:

    http://localhost:8888/data/test.php?value=ABC123456789
    

    这个 文本

    这个 文本 该文件共包含10000个URL。我使用的命令是:

    wget -i /Applications/MAMP/htdocs/data/URLs.txt -O - >> /Applications/MAMP/htdocs/data/append.txt
    

    根据我的研究,一种快速的方法 修理 LimitRequestLine 如果不存在,则添加。由于我使用MAMP(用于MacOS),我所做的是:

    打开 /Applications/MAMP/conf/apache/httpd.conf

    并在下面插入 AccessFileName .htaccess

    LimitRequestLine 1000000000
    LimitRequestFieldSize 1000000000
    

    但我还是犯了同样的错误。我不知道为什么会这样。

    希望它更容易使用 cURL ? 如果是,类似的命令是什么?

    1 回复  |  直到 8 年前
        1
  •  3
  •   hanshenrik    8 年前

    你的 414: Request-URI Too Large 错误和URL的数量无关,不,使用curl也没有帮助。

    问题是有些(或1?)的URL对于目标服务器来说太长,导致了错误。

    cat URLs.txt | awk '{print length, $0}' | sort -nr | head -1
    

    (感谢 https://stackoverflow.com/a/1655488/1067003 对于该命令)

    另一个可能的原因是您没有正确地在URL中终止URL。txt和一些URL(或全部?)连接。请注意,终止字符是“\n”,即十六进制代码0A-不是大多数windows编辑器使用的字符,我不确定wget如何处理这种格式错误的行终止符(根据其定义)

    注意,如果您正在下载大量的.HTML文件(或任何其他可压缩文件),curl将比wget快得多,因为curl支持压缩传输 --compressed 参数(利用 gzip deflate 就目前而言),虽然wget根本不支持压缩,但HTML压缩效果非常好(很容易比使用gzip的未压缩版本小5-6倍)