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