wget/curl скачать файл

У меня следующая проблема. Я хотел бы скачать текст по следующей ссылке:

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

Я пробовал как с wget, так и с curl, но вместо загрузки текстового файла они загружали html-страницу. Есть ли способ преодолеть эту проблему?


person fabioln79    schedule 05.07.2013    source источник
comment
Он использует Javascript для генерации текста в браузере.   -  person Barmar    schedule 05.07.2013


Ответы (2)


Проблема в том, что сервер возвращает не настоящий текстовый файл, а скрипт, который генерирует его на стороне клиента. Я предполагаю, что это защитная мера от скриптов автоматического выщелачивания, подобных тому, который вы пытаетесь создать.

Но, с другой стороны, это довольно хромая мера, потому что они загружают текст, который хотят защитить, с другого 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"
person David Jashi    schedule 05.07.2013
comment
@fabioln79 Я знаю. Я проверил это. - person David Jashi; 05.07.2013

Используйте lynx.

У него есть опция -dump, которая обеспечивает необходимую вам функциональность.

person devnull    schedule 05.07.2013
comment
Выполняет ли lynx JavaScript? - person David Jashi; 05.07.2013
comment
Вывод HTML можно направить на lynx. - person devnull; 05.07.2013
comment
Тогда это бесполезно — данные генерируются в JavaScript. - person David Jashi; 05.07.2013
comment
@DavidJashi, если вы не понимаете, что подразумевается под передачей вывода HTML в lynx, возможно, лучше промолчать. - person devnull; 05.07.2013
comment
Мне нравится ваша вежливость, поэтому я тоже дам вам вежливый ответ: скачайте и посмотрите HTML, о котором идет речь, прежде чем говорить кому-то молчать. - person David Jashi; 05.07.2013