Использование Python для механизации конкретной формы с использованием JavaScript - PullRequest
1 голос
/ 17 марта 2012

Я пытаюсь использовать модуль механизации Python для получения данных через эту форму: http://archive.stsci.edu/kepler/data_search/search.php?form=fuf

У меня возникли проблемы с областью «Выходные столбцы» в левом нижнем углу, которая используетJavaScript, чтобы указать формат вывода.Я хотел бы иметь возможность выбрать определенный список элементов, который обычно выбирается с помощью кнопок javascript.

Я новичок в механизации и давно не смотрел на javascript.Я просматривал ответственный javascript, но не уверен, что делать.Какие-нибудь советы?

Более конкретно: есть ли способ использовать механизацию для изменения элементов в списке?

1 Ответ

2 голосов
/ 18 марта 2012

Я рекомендую делать вызов POST непосредственно к этой форме, а не взаимодействовать с формой каким-либо образом через mechanize.Вот как я мог бы сделать это с mechanize:

import mechanize
from urllib import urlencode
opener = mechanize.build_opener()
data = {"resolver":"NED","radius":"0.02","equinox":"J2000","ktc_target_type[]":"LC","ktc_target_type[]":"SC","extra_column_name_1":"ktc_kepler_id","extra_column_value_1":"","extra_column_name_2":"ktc_kepler_id","extra_column_value_2":"","extra_column_name_3":"ktc_kepler_id","extra_column_value_3":"","extra_column_name_4":"ktc_kepler_id","extra_column_value_4":"","selectedColumnsCsv":"Mark,ktc_kepler_id,ktc_investigation_id,sci_data_set_name,ktc_target_type","selectedColumnsList[]":"ktc_target_type","availableColumns":"Mark","ordercolumn1":"ang_sep","ordercolumn2":"ktc_kepler_id","ordercolumn3":"","coordformat":"sex","outputformat":"HTML_Table","max_records":"1001","max_rpp":"100","action":"Search"}
d = urlencode(data)
url = 'http://archive.stsci.edu/kepler/data_search/search.php'
stuff = opener.open(url,d)
info_i_want = stuff.read()

По сути, поместите содержимое поиска в словарь, сделайте POST-вызов на сервер и прочитайте ваш ответ.

...