@bfesiuk

Почему возвращает status-code 400?

Всем здравствуйте,

Пробую собрать некоторые данный с сайта OLX
Для того чтобы получить некоторую информацию, нужно сделать запрос, но по какой то причине у меня это не получается. Насколько я понимаю, то ошибка в request_header

Исходный код:
import requests
import re
from bs4 import BeautifulSoup

headers = {'user-agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 \
(KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"}


session = requests.Session()


def get_html(url):
    r = session.get(url, headers=headers)
    return r.text


def get_request_parameters(content):
    soup = BeautifulSoup(content, "html.parser")
    scripts = soup.find_all("script")
    phone_token = str(re.findall("var phoneToken = \'(.*)\'", str(scripts))[0])
    referer = soup.find('link', {'rel': "canonical"}).get("href")
    id = re.findall("-ID(.*).html", referer)[0]
    request_url = 'https://www.olx.ua/ajax/misc/contact/phone/' + id + '/?pt=' + phone_token
    print(request_url)
    print(id)
    print(referer)
    print(phone_token)
    request_header = {'user-agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 \
(KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36",
                      'authority': 'www.olx.ua',
                      'method': 'GET',
                      'path': '/ajax/misc/contact/phone/' + id + '/?pt=' + phone_token,
                      'scheme': 'https',
                      'accept': '* / *',
                      'accept-encoding': 'gzip, deflate, br',
                      'accept - language': 'ru - RU, ru;q = 0.9, en - US;q = 0.8, en;q = 0.7',
                      'referer': referer,
                      'sec-fetch - dest': 'empty',
                      'sec-fetch - mode': 'cors',
                      'sec-fetch - site': 'same - origin',
                      'x-requested - with': 'XMLHttpRequest'
                      }
    query_string_parameters = {'pt': phone_token}
    response = session.get(request_url, params=query_string_parameters, headers=request_header)
    print(response.status_code)
    

get_request_parameters(get_html('https://www.olx.ua/obyavlenie/prodam-videokartu-radeon-hd-5450-IDGBIF3.html#f9f01ff837'))


Вкладка XHR:
5f1691157786a520584680.png
5f16911e848ee569311646.png
5f169128eb67c739703409.png
5f169131e320c034356784.png
  • Вопрос задан
  • 85 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы