2010-04-14 53 views
6

我有一个site我想用Unix下载wget下载。 如果您查看文件的源代码和内容,它包含一个名为SUMMARY的部分。 然而发出这样的wget命令后:如何启用'wget'用Javascript下载HTML的全部内容

wget -O downdloadedtext.txt http://www.ncbi.nlm.nih.gov/IEB/Research/Acembly/av.cgi?db=mouse&c=gene&a=fiche&l=2610008E11Rik 

downdloadedtext.txt的含量是不完全的和不同的源代码该站点的 。例如它不包含SUMMARY部分。是否有正确的方式来正确获取完整的内容?

我问这个问题的原因是因为我想从该HTML中的不同值自动下载。

+0

我不明白。源代码有什么不同? Javascript与它有什么关系? – 2010-04-14 09:37:23

+0

@Pekka:包含javascript的正文没有被下载。请尝试看看。 – neversaint 2010-04-14 09:40:10

+0

我现在没有wget(在Windows机器上)。实际的* body *不同或者js文件没有被下载? – 2010-04-14 09:41:47

回答

11

你需要把里面引号链接:

wget -O downdloadedtext.txt 'http://www.ncbi.nlm.nih.gov/IEB/Research/Acembly/av.cgi?db=mouse&c=gene&a=fiche&l=2610008E11Rik' 

这是因为&有着特殊的意义,将命令拆分成多个命令。

3

&字符在壳中有特殊含义。引用URI,以便您实际请求您要请求的URI。

+0

@DD:如何报价?我尝试过“\&l = 2610008E11Rik”,但仍然失败。 – neversaint 2010-04-14 09:44:11

+0

尝试'&'而不是'&'。 – 2010-04-14 09:46:03

+0

@皮卡:谢谢,但仍然没有效果。 – neversaint 2010-04-14 09:48:07

2

您可以使用-p--page-prerequisites)标志告诉wget检索链接的资源。 From man wget

该选项使Wget下载正确显示给定HTML页面所需的所有文件。这包括内联图像,声音和引用样式表等内容。

你也可以看看--follow-tags选项,它可以让你限制的过程:

的Wget具有HTML标签/属性对的内部表,它在递归寻找链接的文档时,会考虑恢复。但是,如果用户只需要考虑这些标签的子集,则应该使用此选项以逗号分隔列表的形式指定此类标签。

+0

@TJC:那不行。我不想获取链接源的内容。我只想获得该网站的完整内容。 – neversaint 2010-04-14 09:46:20

+0

@neversaint我认为你的意思是“网页”,而不是“网站” – 2010-04-14 09:57:37