TRILEGALでシミュレーションの入力を設定する multipart/form-data を送信し、リダイレクトされたページから利用可能なファイルをダウンロードしたいと考えています。
リクエスト、urllib、Grab、mechanize などのドキュメントを調べましたが、mechanize では私のコードは次のようになります。
from mechanize import Browser
browser = Browser()
browser.open("http://stev.oapd.inaf.it/cgi-bin/trilegal")
browser.select_form(nr=0)
browser['gal_coord'] = ["2"]
browser['eq_alpha'] = ["277.981111"]
browser['eq_delta'] = ["-19.0833"]
response = browser.submit()
content = response.read()
ただし、python 3 では利用できないため、テストできませんでした。
だから私はリクエストを試しました:
import requests
url = 'http://stev.oapd.inaf.it/cgi-bin/trilegal'
values = {'gal_coord':"2",
'eq_alpha':"277.981111",
'eq_delta':"-19.0833",
'field':" 0.047117",
}
r = requests.post(url, files = values)
しかし、結果ページにアクセスする方法がわかりません - もしそうなら
r.content
送信したばかりのフォームの内容が表示されますが、実際のWeb サイトを開いて「送信」をクリックすると、新しいウィンドウが表示されます (method="post" action="./trilegal_1.6" に従います)。 .
リクエストを含む新しいウィンドウにアクセスするにはどうすればよいですか (つまり、送信ボタンをクリックすると開くページに移動します)、結果ページのリンクをクリックして結果ファイルを取得します (「結果は約 2 秒後に利用可能になります。このリンクで分。") ?
仕事を行うことができる他のツールを教えていただければ、本当に感謝しています.SOを調べて、この問題の解決に役立つものを探すのに何時間も費やしました.
ありがとうございました!
クリス