Request python post передача данных JS скрипта?

Добрый день, прошу помочь
Только начал разбираться с парсингом в python.

Пытаюсь забрать данные с сайта https://kase.kz/ru/trades/view/

Проблема в том что, для открытия этой ссылки, нужно выбрать чек боксы с нужной информацией по ссылке https://kase.kz/ru/trades/

Написал такой, код но страницу не могу получить

import requests
from bs4 import BeautifulSoup
payload = {'csrfmiddlewaretoken':'6H4ZKPzNbRpguqRqcu2LKDUeT06CwtwP7i9yZye2ubJqrCOE0jLsuj0zYfMKtvX4','market': 'FOREX','fields': '3' , 'instruments': '"USDKZT_TOD"'}
page = requests.post('https://kase.kz/ru/trades/view/', data = payload)
print(page.status_code)


результат 403
  • Вопрос задан
  • 556 просмотров
Решения вопроса 1
@marxxt
понравился ответ - поставь ✔
Может быть вот так

import requests
import re

url = 'https://kase.kz/ru/trades/'

r = requests.get(url)

cookie_header = r.headers['Set-Cookie']
cookie = re.search('csrftoken=([\s\S]+?);', cookie_header).group(1)

print cookie

cookies = {
    'csrftoken': cookie,
    'TRADE_USER_SETTINGS_FOREX': '"{\"fields\": [3]\054 \"instruments\": [\"USDKZT_TOD\"]}"',
}
data = {
    'csrfmiddlewaretoken': cookie,
    'market': 'FOREX',
    'instrument': 'USDKZT_TOD',
    'field': '3',
}
r = requests.post('https://kase.kz/ru/trades/view/', cookies=cookies, data=data)
print r.status_code
print r.text


Ответ 200, все норм, документ отдается
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Qsm21 Автор вопроса
Переписал код на

import requests
from bs4 import BeautifulSoup
headers = {
    'Upgrade-Insecure-Requests': '1',
    'Content-Type': 'application/x-www-form-urlencoded'
}
cookies = {
    'csrftoken': 'pjxuo6wCuMcSyqKN7U5P3GafthpzBJs4qUC3DPbRN6w2vCH1VJOwNmgAyw5HyLTj',
    'TRADE_USER_SETTINGS_FOREX': '"{\"fields\": [3]\054 \"instruments\": [\"USDKZT_TOD\"]}"',
}
data = {
    'csrfmiddlewaretoken': 'ICIZdcQ4t80pwinw6DjCrTeJA6b70093JdNysVvjMskztukKUs2jbzk4FlRfX2Ai',
    'market': 'FOREX',
    'instrument': 'USDKZT_TOD',
    'field': '3',
}
r = requests.post('https://kase.kz/ru/trades/view/', headers=headers, cookies=cookies, data=data)
print(r.status_code)


Теперь вопрос, как их получать, как их получать, они выдаются сервером
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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