【问题标题】:How to enable 'wget' to download the whole content of HTML with Javascript如何启用“wget”以使用 Javascript 下载 HTML 的全部内容
【发布时间】:2011-02-07 20:11:06
【问题描述】:

我有一个site,我想使用 Unix wget 下载它。 如果您查看文件的源代码和内容,它包含名为“SUMMARY”的部分。 但是在发出这样的 wget 命令后:

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的内容不完整,与源码不同 那个网站的。例如,它不包含摘要部分。有没有正确获取完整内容的正确方法?

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

【问题讨论】:

  • 我不明白。源代码有什么区别? Javascript 与它有什么关系?
  • @Pekka:包含 javascript 的正文不会被下载。请尝试看看。
  • 我现在没有 wget 方便(在 Windows 机器上)。是实际的body不同还是js文件没有被下载?

标签: javascript html linux cgi wget


【解决方案1】:

您需要将链接放在引号内:

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

这是因为&有特殊含义,会将命令拆分成多个命令。

【讨论】:

    【解决方案2】:

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

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

    您还可以查看--follow-tags 选项,它可以让您限制该过程:

    Wget 有一个 HTML 标记/属性对的内部表,在递归检索期间查找链接文档时会考虑该表。但是,如果用户只想考虑这些标签的子集,则应使用此选项在逗号分隔的列表中指定这些标签。

    【讨论】:

    • @TJC:那不行。我不想获取链接源的内容。我只想获取该网站的完整内容。
    • @neversaint 我认为您的意思是“页面”,而不是“站点”
    【解决方案3】:

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

    【讨论】:

    • @DD:如何报价?我尝试了“\&l=2610008E11Rik”,但仍然失败。
    • 试试& 而不是&
    • @Pekka:谢谢,但还是没有效果。
    猜你喜欢
    • 2013-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-04
    相关资源
    最近更新 更多