2017-10-15 5 views
3

pythonの天気情報をhttp://idojarasbudapest.hu/archivalt-idojarasからダウンロードしたいと思いますが、送信ボタン「Mehet」を押さない限り、必要な情報は表示されません。私は提出しなければならない2つの情報:年( 'ev')と月( 'ho')です。要求のあるPython HTML POST

「ev」と「ho」の2つのパラメータでリクエストをPOSTする必要があります。その場合、Webサイトはリクエストされた情報を「送る」必要があります。

私が書いた次のコードは、要求されたものではなく、元のウェブサイトのhtmlコードを出力します。

import requests 

data= {'ev': '2016','ho': 'Január'} 
r = requests.post('http://idojarasbudapest.hu/archivalt-idojaras', data=data) 

print (r.text) 

htmlフォームは次のようになります。

The html form

任意のアイデアは、これをどのように修正しますか? ご回答ありがとうございます。

答えて

4

「Mehet」ボタンが押されたときに、ブラウザによって送信されたPOSTリクエストを検査するから、私はPOSTリクエストで送信された引数はあなたがrequests経由で投稿されたものとは異なる形を持っていることがわかります。

Firefox developer tools screenshot -- http://idojarasbudapest.hu/archivalt-idojaras

ので、おそらくこのような何かにあなたのコードを変更します。私はこれを試してみましたが、それが問題を解決しなかった

import requests 

data= {'ev': '2016','ho': '01', 'button': 'Mehet'} 
r = requests.post('http://idojarasbudapest.hu/archivalt-idojaras', data=data) 

print (r.text) 
+0

ありがとう、私はそれを探していた!:) – ajlaj25

1

ペイロードに'button': 'Mehet'を追加してください。

data= {'ev': '2016', 'ho': '01', 'button': 'Mehet'} 
+0

。 Odysseasが何を言い張っているかは、 ありがとう! – ajlaj25

+1

@ ajlaj25ああ、私は気付かなかった、申し訳ありません。オプションの値を提出する必要があります。これは1月には「01」となります。それに応じて編集します。 –