Python скрипт, который использует одну панель поиска из нескольких на сайте - PullRequest
0 голосов
/ 13 января 2020

У меня есть список из 230 пространственных групп кристаллических структур (строк). Я хотел бы написать python скрипт для извлечения файлов для каждой группы из http://rruff.geo.arizona.edu/AMS/amcsd.php.

Мне бы хотелось, чтобы скрипт итеративно искал все группы пространств в параметре поиска «Параметры и симметрия ячейки», а затем загружал один из файлов для некоторой структуры (скажем, первой).

Пример моего списка выглядит примерно так: spaceGroups = ["A-1","A2","A2/a","A2/m","..."]. Формат поиска, скажем, для группы 1 будет выглядеть следующим образом: sg=A-1, а результаты будут выглядеть так: http://rruff.geo.arizona.edu/AMS/result.php.

Сначала я бы хотел узнать, возможно ли это, и если да, то с чего начать?

1 Ответ

0 голосов
/ 13 января 2020

Конечно, это возможно. «Чистым» способом является создание сканера для отправки запросов, загрузки и сохранения файлов.

Вы можете использовать scrapy (https://docs.scrapy.org/en/latest/) для сканера и Fiddler (https://www.telerik.com/fiddler), чтобы увидеть, какие запросы вам нужно воссоздать внутри вашего паука.

По сути, вы будете использовать список групп пространств для генерации запросов к форме на этой странице. После каждого запроса вы будете анализировать ответ, собирать идентификаторы / URL-адреса загрузки и , которые следуют на последующих страницах (чтобы собрать все идентификаторы / URL-адреса загрузки). Наконец, вы загрузите файлы.

Если вы не хотите использовать scrapy, вы можете создать свои собственные логи c с запросами (https://requests.readthedocs.io/en/latest/user/quickstart/), но scrapy загрузит все быстрее и имеет множество функций, которые помогут вам.

Просматривая эту страницу, кажется, вам нужны только идентификаторы из каждого кристалла, фактические URL-адреса загрузки просты.

...