我想使用wget来获取此页面的结果http://smart.embl-heidelberg.de/smart/batch.pl
我点击该页面上的“仅文字输出”,并将“标识符”的文件指定为具有以下内容的文件。
A0A183
然后我点击“提交查询”,这将引导我进入结果页面。我知道我应该以某种方式为wget提供--post-data选项以便下载结果页面。但我很难弄清楚这个选项应该是什么。谁能让我怎么弄清楚? (我尝试使用Chrome Devtools Network标签。但我不确定从那里获得--post-data选项。)
我也尝试了以下内容。但它生成了一个空输出文件。
~$ cat /tmp/000.txt
A0A183
~/linux/test/perl/library/WWW/Mechanize/bin/mech-dump$ mech-dump --forms http://smart.embl-heidelberg.de/smart/batch.pl
GET http://smart.embl-heidelberg.de/smart/search.cgi
keywords=keywords... (text)
<NONAME>=Search SMART (submit)
POST http://smart.embl-heidelberg.de/smart/batch.pl (multipart/form-data)
IDS= (textarea)
SEQS= (textarea)
IDFILE= (file)
SEQFILE= (file)
TEXTONLY=<UNDEF> (checkbox) [*<UNDEF>/off|1/Text-only output]
LOOSE=<UNDEF> (checkbox) [*<UNDEF>/off|1/Substring matching for identifiers]
DO_PFAM=<UNDEF> (checkbox) [*<UNDEF>/off|DO_PFAM/include PFAM domains]
INCLUDE_SIGNALP=<UNDEF> (checkbox) [*<UNDEF>/off|INCLUDE_SIGNALP/include signal peptides]
<NONAME>=<UNDEF> (submit)
<NONAME>=<UNDEF> (reset)
~$ wget --post-data='IDFILE=/tmp/000.txt&TEXTONLY=1' http://smart.embl-heidelberg.de/smart/batch.pl
答案 0 :(得分:2)
怎么样:
wget --post-data='IDS=A0A183&TEXTONLY=1' http://smart.embl-heidelberg.de/smart/batch.pl
答案 1 :(得分:0)
我知道这已经过时了,但得到的回答与 wget 一致。
wget 1.13.4或更高。 查看这篇文章: https://superuser.com/questions/86043/linux-command-line-tool-for-uploading-files-over-http-as-multipart-form-data
wget --header="Content-type: multipart/form-data boundary=FILEUPLOAD" --post-file 000.txt http://smart.embl-heidelberg.de/smart/batch.pl
<强> 000.txt 强>
--FILEUPLOAD
Content-Disposition: form-data; name="IDS"
--FILEUPLOAD
Content-Disposition: form-data; name="SEQS"
--FILEUPLOAD
Content-Disposition: form-data; name="IDFILE"; filename="000.txt"
Content-Type: text/plain
A0A183
A0A182
--FILEUPLOAD
Content-Disposition: form-data; name="SEQFILE"; filename=""
Content-Type: application/octet-stream
--FILEUPLOAD
Content-Disposition: form-data; name="TEXTONLY"
1
--FILEUPLOAD--