2

Я пытаюсь отсканировать Бренда Энзимы за кучу файлов молекул с помощью скрипта. Если я просто загружаю по URL-адресу файла (это перенаправление PHP), я получаю файл размером 0 КБ, поэтому я думаю, что они проверяют файлы cookie и / или реферер.

Тогда я сделал это:

1-й запрос

$ wget --cookies=on --keep-session-cookies --save-cookies=cookies.txt "http://www.brenda-enzymes.info/php/search_result.php4?a=54&W%5B2%5D=&T%5B2%5D=1&Search=Search&l=100&os=1&RNV=1&RN=&T%5B0%5D=2&W%5B1%5D=3.4.21.5&T%5B1%5D=1&V%5B3%5D=1&W%5B3%5D=&T%5B3%5D=1&V%5B4%5D=1&W%5B4%5D=&T%5B4%5D=2&V%5B5%5D=1&W%5B5%5D=&T%5B5%5D=2&V%5B6%5D=1&W%5B6%5D=&T%5B6%5D=2&W%5B7%5D=&T%5B7%5D=2&FNV=1&orderDesc=1&orderByHTMLField=IC50+Value"

2-й запрос

$ wget --referer="http://www.brenda-enzymes.info/php/search_result.php4?a=54&W%5B2%5D=&T%5B2%5D=1&Search=Search&l=100&os=1&RNV=1&RN=&T%5B0%5D=2&W%5B1%5D=3.4.21.5&T%5B1%5D=1&V%5B3%5D=1&W%5B3%5D=&T%5B3%5D=1&V%5B4%5D=1&W%5B4%5D=&T%5B4%5D=2&V%5B5%5D=1&W%5B5%5D=&T%5B5%5D=2&V%5B6%5D=1&W%5B6%5D=&T%5B6%5D=2&W%5B7%5D=&T%5B7%5D=2&FNV=1&orderDesc=1&orderByHTMLField=IC50+Value" --cookies=on --load-cookies=cookies.txt --keep-session-cookies --save-cookies=cookies.txt -O test.mol http://www.brenda-enzymes.info/brenda_ligand/download_ligand_molfile.php4?LigandID=298989

По-прежнему ничего, итоговый test.mol - пустой файл.

Однако, если я следую за первым URL-адресом в браузере, а затем копирую-вставляю второй URL-адрес, он действительно загружает 3-килобайтный файл .mol .

Что мне не хватает? Благодарю.

1 ответ1

2

Лучший способ сделать то, что вы пытаетесь - это использовать запросы SOAP. Согласно их документации, сайт Brenda предлагает функциональность SOAP.

Я не знаю, какую информацию вы ищете. Ниже приведен пример сценария Perl для получения значения Km для молекулы с номером EC 1.1.1.1:

#!/usr/bin/perl -w
use SOAP::Lite;

$resultString = SOAP::Lite
-> uri('http://www.brenda-enzymes.info/soap2')
-> proxy('http://www.brenda-enzymes.info/soap2/brenda_server.php')
-> getKmValue("ecNumber*1.1.1.1#organism*Homo sapiens#")
-> result; 

print $resultString;

Посмотрите документацию, вы сможете найти то, что вам нужно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .