В настоящее время у меня есть код для итеративного просмотра веб-страниц сайта . У меня есть список из 371 объекта поиска (называемого spaceGroup
), который go в поле поиска Параметры ячейки и симметрия . Для каждого поиска я выбираю результат. В большинстве случаев результаты поиска возвращают список результатов, где мне необходимо указать, какой результат выбрать из этого списка. Это показано ниже:
import mechanize
for group in spaceGroup:
# initialize/open main page for search
br = mechanize.Browser()
br.open("http://rruff.geo.arizona.edu/AMS/")
# select and write space group to cellparam control in br form
br.select_form(nr=0)
br.set_all_readonly(False)
br["CellParam"] = "sg="+group
# submit/search, brings to next page
response0 = br.submit()
name = "sg"+str(count)
# select form
br.select_form(nr=0)
br.set_all_readonly(False)
# here I select from a list of results and
br.find_control("check[]").items[seed].selected=True
br.find_control("down").items[file].selected=True # this form chooses the file
response1 = br.submit()
Из выбранного результата загружается файл. Время от времени, однако, будет только один результат от моего поиска. В этих случаях я комментирую br.find_control("check[]").items[seed].selected=True
и пытаюсь просто загрузить единственный результат без какого-либо успеха. Вот как выглядит форма для одного результата:
<result_form POST http://rruff.geo.arizona.edu/AMS/download.php?page=amcsd application/x-www-form-urlencoded
<HiddenControl(viewOrDownload=)>
<HiddenControl(hid1=1)>
<HiddenControl(processed=0)>
<SelectControl(down=[*amc, cif, dif])>
<IgnoreControl(<None>=<None>)>
<IgnoreControl(<None>=<None>)>
<SubmitControl(viewSelected=View Selected Data)>
<SubmitControl(downloadSelected=Download as Text File)>
<SubmitControl(downloadSelectedZip=Download as Zip Archive)>>
Я пытался это исправить, установив br['viewOrDownload']=Download
перед отправкой, но это не работает. Есть другие идеи?