Python Запрашивает пост ответ 400 с 3 дней - PullRequest
1 голос
/ 10 апреля 2020

У меня есть Python3 Scraper, который делает запрос XMLHttpRequest для одного сайта (например, https://www.immowelt.de/liste/bl-nordrhein-westfalen/haeuser/mieten?sort=relevanz), который отлично работал в течение нескольких месяцев:

import requests 

def get_offset_urls_source_code(bl_code, object_type_code, purpose_code, max_objects):

    payload = {'query': f"geoid={bl_code}&etype={object_type_code}&esr={purpose_code}&sort=relevanz", 'offset': '0',
               'pageSize': f'{max_objects}'}

    r = requests.post(
        url='https://www.immowelt.de/liste/getlistitems',
        data=payload,
        headers={'X-Requested-With': 'XMLHttpRequest'}
    )
    code = r.text
    r.close()
    return code


#Example Values:
bl_code = 10805          #it is actually a value from a DF, that's why I had to wrap int around it below
object_type_code = 2     #same here
purpose_code = 2         #same here
max_objects = 10         #same here

response_code = get_offset_urls_source_code(bl_code=int(bl_code),
                                                    object_type_code=int(object_type_code),
                                                    purpose_code=int(purpose_code),
                                                    max_objects=int(max_objects)
                                                    )

response_code

что приводит к:

'Bad Request'

Когда я go на упомянутый выше Веб-сайт и открываю инструменты разработчика с помощью Google Chrome и прокручиваю страницу вниз, я вижу сообщение XHR. Изучая детали, я не могу обнаружить никаких изменений в «форме данных», поэтому мне интересно, почему я получаю плохие запросы, когда выполняю запрос с python в течение 3 дней. Попытка преобразовать dict с помощью json (согласно некоторым другим сообщениям) также не помогает.

Что-то, что мне нужно добавить в мой запрос? Должен ли я заполнить все пары ключ-значение заголовков? Что меня интересует, потому что раньше мне это не было нужно. Есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...