@wiser2018

Как формировать post запрос с использованием python?

Нахожусь на сайте, тренируюсь парсить.

При вводе данных в основной input и submit-а отправляется запрос в js он выглядит так:

await fetch("https://www.work.ua/_data/_ajax/by-category-block.php", {
    "credentials": "include",
    "headers": {
        "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0",
        "Accept": "*/*",
        "Accept-Language": "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3",
        "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
        "X-Requested-With": "XMLHttpRequest"
    },
    "referrer": "https://www.work.ua/ru/jobs/by-category/",
    "body": "region_id=0&search_type=jobs",
    "method": "POST",
    "mode": "cors"
});


Запрос проходит и данные возвращаются.

Пытаюсь реализовать на python

import requests

data = """{"credentials": "include","headers": {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0","Accept": "*/*","Accept-Language": "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3","Content-Type": "application/x-www-form-urlencoded; charset=UTF-8","X-Requested-With": "XMLHttpRequest"},"referrer": "https://www.work.ua/ru/jobs/by-category/","body": "region_id=0&search_type=jobs","method": "POST","mode": "cors"} """

url = "https://www.work.ua/_data/_ajax/by-category-block.php"

r = requests.post(url , data ) 

print(r.text)


Текста не наблюдается. Уверен, что я наивен, но подскажите в какую строну копать?
  • Вопрос задан
  • 5569 просмотров
Решения вопроса 1
shpaker
@shpaker
Вольный хлебопашец
Вы как-то совсем не правильно используете либу requests. Должно быть что-то вроде такого:

import requests

url = "https://www.work.ua/_data/_ajax/by-category-block.php"
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0",
    "Accept": "*/*","Accept-Language": "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3",
    "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
    "X-Requested-With": "XMLHttpRequest"
}
data = "region_id=0&search_type=jobs"

r = requests.post(url=url, headers=headers , data=data)

print(r.text)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@antonksa
Вы в data, которое должно быть словарем запихнули СТРОКУ!!!
Люди, не ленитесь, прочитайте хотя бы сотню страниц о языке, перед тем как на нем что-то писать!!!
Хотя бы базовые вещи!!!
Ответ написан
Ваш ответ на вопрос

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

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