wget下载网站的一部分

时间:2017-11-10 16:03:27

标签: wget

我想下载网站的特定部分。我正在关注这个wget - Download a sub directory。但问题是该网站的部分没有任何特定网址,即网址如下http://grephysics.net/ans/0177/*其中*是1-100的数字,我无法在wget中使用http://grephysics.net/ans/0177。如何下载这100个互相链接的网页(即上一页和下一页按钮应链接到本地​​副本)

1 个答案:

答案 0 :(得分:0)

我认为这就是你所需要的:

wget -p -k http://grephysics.net/ans/0177/{1..100}

<强>解释

-k:重写指向本地资产的链接

-p:获取显示页面所需的所有图像,js,css等

{1..100}:这指定了一系列要下载的网址,在您的情况下,我们的网页标有1到100个。

为什么没有递归下载工作?

您发布的链接是一个很好的第一资源,可能是大多数人想要的。但是wget递归下载的方式是通过获取指定的第一页(即根),然后跟随链接到子页面。然而,设置grephysics的方式是http://grephysics.net/ans/0177将我们引导到404. 它没有链接供wget跟随下载子页面。

如果您的wget不支持 {}

使用以下命令仍可以获得相同的结果:

for i in {1..100}; do echo $i; done | wget -p -k -B http://grephysics.net/ans/0177/ -i -

<强>解释

for i in {1..100};...:这会打印值1到100。

|:对于那些没有看过这个的人,我们将上一个命令的输出输入到以下命令的输入中

-p:获取显示页面所需的所有图像,js,css等

-k:重写链接以指向本地副本

-B:指定与-i选项

一起使用的基本网址

-i:读取要从文件中获取的网址列表。由于我们指定了&#39;文件&#39; -它从标准输入读取。

因此,我们读取值1到100并将它们附加到我们的基本网址 http://grephysics.net/ans/0177/并获取所有这些网址以及随附的所有资源,然后重写链接以便我们可以离线浏览。 / p>