wget,curl - 下载的页面内容将 + 符号编码为“+”
wget,curl - downloaded page content encodes + sign as "+"
如标题所说。
例如做
wget "https://www.veracrypt.fr/en/Downloads.html" --local-encoding=utf-8 --remote-encoding=utf-8 -O - | less
请注意,页面中的 <a href>
元素包含 +download
,而不是预期的 +download
。将编码的 url 送入 wget(或 curl)再次导致下载失败。
如何解决这个问题?需要明确的是,目的是 wget/curl 页面内容,grep 从中下载 link,然后 wget link 指向的资产。
这就是代码中的字面意思:
<a href="https://launchpad.net/veracrypt/trunk/1.24-update6/+download/VeraCrypt%20Setup%201.24-Update6.exe">
所以 wget
只是给你它得到的东西。请记住,在元素属性中,您可以使用 HTML entity escaping 转义字符。这是有效的 HTML,兼容的浏览器会在使用前正确解码。
您可以对任何 HTML 实体解码器执行相同的操作。除非您的抓取工具可以为您解码,否则您首先必须自己解码。
如标题所说。 例如做
wget "https://www.veracrypt.fr/en/Downloads.html" --local-encoding=utf-8 --remote-encoding=utf-8 -O - | less
请注意,页面中的 <a href>
元素包含 +download
,而不是预期的 +download
。将编码的 url 送入 wget(或 curl)再次导致下载失败。
如何解决这个问题?需要明确的是,目的是 wget/curl 页面内容,grep 从中下载 link,然后 wget link 指向的资产。
这就是代码中的字面意思:
<a href="https://launchpad.net/veracrypt/trunk/1.24-update6/+download/VeraCrypt%20Setup%201.24-Update6.exe">
所以 wget
只是给你它得到的东西。请记住,在元素属性中,您可以使用 HTML entity escaping 转义字符。这是有效的 HTML,兼容的浏览器会在使用前正确解码。
您可以对任何 HTML 实体解码器执行相同的操作。除非您的抓取工具可以为您解码,否则您首先必须自己解码。