Как получить страницу XML, найденную на странице? - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть такая HTTP-ссылка, где последнее число в ссылке обозначает идентификатор гена.

http://glioblastoma.alleninstitute.org/ish/gene/show/22

Если вы щелкнете по нему, вы попадете на страницу, где внизу написано «Эти данные также доступны в виде XML» со ссылкой на файл XML,Я хочу скачать и сохранить файл XML для сотен таких идентификаторов генов. Как я могу это сделать, не нажимая на каждую страницу и не сохраняя ее?

1 Ответ

1 голос
/ 07 ноября 2019

Эта ссылка приводит вас к [глубокому вдоху] ...

http://glioblastoma.alleninstitute.org/api/v2/data/SectionDataSet/query.xml?order=specimen_types.name$asc&numRows=all&criteria=rma::criteria,products\[id$eq17\],genes\[id$eq22\],rma::include,genes,specimen(donor(age),specimen_types),section_images\[image_type$eqPrimary\],rma::options\[only$eq%27genes.id,id,specimens.id,specimens.external_specimen_name,specimen_types.name,donors.molecular_subtype,ages.name,sub_images.path,sub_images.x,sub_images.y,sub_images.width,sub_images.height,sub_images.tier_count,failed%27\]

... который является частью этого API . Обратите внимание, что число 22 * ​​1007 * появляется там и может быть заменено любым другим идентификатором гена.

Если вы предпочитаете общее имя, тогда ...

http://glioblastoma.alleninstitute.org/api/v2/data/SectionDataSet/query.xml?order=specimen_types.name$asc&numRows=all&criteria=rma::criteria,products\[id$eq17\],genes\[acronym$eqABL1\],rma::include,genes,specimen(donor(age),specimen_types),section_images\[image_type$eqPrimary\],rma::options\[only$eq%27genes.id,id,specimens.id,specimens.external_specimen_name,specimen_types.name,donors.molecular_subtype,ages.name,sub_images.path,sub_images.x,sub_images.y,sub_images.width,sub_images.height,sub_images.tier_count,failed%27\]

.. . позволяет вам искать ABL1 или MECOM

Чтобы написать это, я предлагаю поместить все ваши генные сокращения в файл, а затем сделать следующее:

cat geneAcronyms | xargs -n 1 -I{} curl -o {}.xml 'http://glioblastoma.alleninstitute.org/api/v2/data/SectionDataSet/query.xml?order=specimen_types.name$asc&numRows=all&criteria=rma::criteria,products\[id$eq17\],genes\[acronym$eq{}\],rma::include,genes,specimen(donor(age),specimen_types),section_images\[image_type$eqPrimary\],rma::options\[only$eq%27genes.id,id,specimens.id,specimens.external_specimen_name,specimen_types.name,donors.molecular_subtype,ages.name,sub_images.path,sub_images.x,sub_images.y,sub_images.width,sub_images.height,sub_images.tier_count,failed%27\]'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...