首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >wget“缺失URL”

wget“缺失URL”
EN

Stack Overflow用户
提问于 2021-04-22 02:51:01
回答 1查看 649关注 0票数 0

我只是简单地查找最新版本的"go“,并将其存储在URL路径中。

代码语言:javascript
复制
url="$(wget -qO- https://golang.org/dl/ | grep -oP 'https:\/\/dl\.google\.com\/go\/go([0-9\.]+)\.linux-amd64\.tar\.gz' | head -n 1 )"

当我回音时,输出是空的。另外,当我尝试像这样下载这个文件时:

代码语言:javascript
复制
wget ${url}

我收到以下错误消息:

代码语言:javascript
复制
wget: missing URL
Usage: wget [OPTION]... [URL]...

Try `wget --help' for more options.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-22 03:58:21

据我所见,您正在尝试匹配完整的URL,并且该页面只包含相对的hrefs。下面是一个例子:

代码语言:javascript
复制
<tr>
  <td class="filename"><a class="download" href="/dl/go1.3rc1.linux-386.tar.gz">go1.3rc1.linux-386.tar.gz</a></td>
  <td>Archive</td>
  <td>Linux</td>
  <td>x86</td>
  <td></td>
  <td><tt>07c656173c444e4373a799141c1cb28128a345eb</tt></td>
</tr>

从上面可以看到,下载的href不包含完整的路径。因此,如果要匹配相对路径,可以这样做:

代码语言:javascript
复制
url="$(wget -qO- https://golang.org/dl/ | grep 'class="download"'| awk -F "\"" '{print $6}' | head -n1 | sed  's/^/https\:\/\/golang\.org/')"

其中:

代码语言:javascript
复制
grep 'class="download"'

将找到下载链接的所有行(如果您相信该页面具有相当稳定的格式,则可以跳过此步骤)。

代码语言:javascript
复制
awk -F "\"" '{print $6}'

以双引号分隔字段的形式读取行,并打印第6个字段,该字段恰好是相对的href;

代码语言:javascript
复制
sed  's/^/https\:\/\/golang\.org/')"

这是网站的前缀,因此您将得到一个完整的URL。当然,如果站点更改,这将失败,因此您可能需要使用一个变量来存储站点,然后在wget查询和sed查询中使用该变量.但是网络也有这种怪癖。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67206072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档