0

我有以下问题。我想从以下链接下载文本:

http://www.ncbi.nlm.nih.gov/nuccore/NC_021206.1?report=fasta&log$=seqview&format=text

我都试过了wgetcurl但不是下载文本文件,而是下载一个 html 页面。有没有办法克服这个问题?

4

2 回答 2

1

问题是,该服务器不返回真正的文本文件,而是一个脚本,它在客户端生成它。我想,这是自动提取脚本的一种保护措施,就像您尝试创建的那样。

但是,另一方面,这是相当蹩脚的措施,因为他们正在加载他们想要保护的文本免受另一个 URL 的影响,在你的情况下是:

http://www.ncbi.nlm.nih.gov/sviewer/viewer.fcgi?val=498907917&db=nuccore&dopt=fasta&extrafeat=0&fmt_mask=0&maxplex=1&sendto=t&withmarkup=on&log$=seqview&maxdownloadsize=1000000

所以,这里你应该做什么:

wget "whatever" -O temp.html
id=`cat temp.html | grep ncbi_uidlist | sed -e 's/^.*ncbi_uidlist\" content=\"//' | sed -e 's/".*//'`
wget "http://www.ncbi.nlm.nih.gov/sviewer/viewer.fcgi?val=$id&db=nuccore&dopt=fasta&extrafeat=0&fmt_mask=0&maxplex=1&sendto=t&withmarkup=on&log$=seqview&maxdownloadsize=1000000"
于 2013-07-05T12:26:05.130 回答
-1

使用猞猁

它有一个-dump选项可以提供您正在寻找的功能。

于 2013-07-05T12:25:01.367 回答