Я работаю с веб-сайтом, на котором есть событие onClick, открывающее таблицу. Перед событием onClick (т. е. начальной страницей веб-сайта) я могу написать запрос POST, который по сути имитирует действие события onClick, возвращая страницу, публикующую событие onClick. Однако дополнительные запросы POST или GET, даже в пределах одного сеанса,
взаимодействуют с исходной страницей. Я не «нажал» кнопку, чтобы раскрыть JavaScript, который показывает первоначальный запрос POST в сеансе запросов. Событие щелчка не меняет URL-адрес (поэтому нет параметров для загрузки; оно просто загружает HTML непосредственно на страницу).
Мой вопрос: как бы я решил это без использование headless-браузера или изменение веб-сайта (и добавление чего-то вроде AJAX). Моя идея заключалась в том, чтобы использовать контент из первоначального ответа в качестве «веб-сайта», на котором я размещаю POST, но я не знаю, как заставить это работать (или может ли оно работать).
Некоторые упрощенный код ниже для описания ситуации:
Код: Выделить всё
import requests
url = "someurl.com"
session = requests.Session()
headers = {"some keys and values"}
payload1 = {"submitBtn": "submit"}
initialRequest = session.post(url, data=payload1, headers=headers)
// initialRequest.content -> This returns the "correct" page (the page the javascript loads after the onClick event)
payload2 = {"newData": "3", "saveBtn":"save"}
followUpRequest = session.post(url, data=payload2, headers=headers) // This fails because Requests is loading the initial page again (demonstrated by a session.get(url) Request that returns the initial page).
Подробнее здесь: https://stackoverflow.com/questions/793 ... -without-a
Мобильная версия