私の仕事はサイトのページhttps://www.dobovo.com/からアパルト予約をする予定です。サイト自体は、ページがロードされたときに、json形式でポストリクエストからデータを受け取ります。同様のリクエストを送信すると、私はpostメソッドによって要求を投稿しますが、次のエラー{'success': False, 'error': 'Method GET is not allowed'}
が発生します。ポストリクエスト後にjson-responseを受け取ることができませんPython
興味深いことに、数日前に私は同じようにデータを得ることができました。 それは私が、端末からこのJSONを得ることができることも面白いです:curl -d "id=89740&date=2017-07-01" https://www.dobovo.com/dobovo/apt/ajax.php?action=getCalendar&lang=en
またはwget --post-data="id=82731&date=2017-07-01" https://www.dobovo.com/dobovo/apt/ajax.php?action=getCalendar&lang=en
を(ID = 82731が1つのアパートの一例である)
私のPythonコード:
from requests import post
def get_calendar(url):
ajax = 'http://www.dobovo.com/dobovo/apt/ajax.php?action=getCalendar&lang=en'
first_day_in_month = '2017-07-01'
id_ = url[-10:-5]
form_data = {
'id': id_,
'date': first_day_in_month
}
response = post(url=ajax, data=form_data)
return response.json()
ここにURLがへのリンクですカレンダー付きのページhttps://www.dobovo.com/zaporozhye-apartments/orchid-82731.html
私に間違っていることを教えてください。
あなたの 'ajax'変数を見て、そのURLは有効な応答を返しません。 –
@aws_apprenticeこれはリクエストのURLです。あなたがデータとともにpost-requestを送信しない限り、何も返せません。このURLは、端末から要求を送信して必要なデータを取得するため、正しいです。それとも私はあなたを理解していないのですか? –
このタスクに 'requests.Session'を使用する必要があります。 –