Я пытаюсь очистить сайт, для которого у меня есть законный логин. Когда вы пытаетесь посетить этот сайт, вы будете перенаправлены на Verify.aspx
, пока не введете допустимое значение для access-code
. Используя библиотеку requests
для Python, я попробовал следующее:
url1 = "<url>/Verify.aspx"
payload = {"access-code": "xxxxxxxx" }
ses = requests.Session()
r = requests.get(url1, data=payload)
Когда я смотрю на значение или r.cookies
, я вижу, что я взял кучу файлов cookie, которые хранятся в банке для файлов cookie:
<RequestsCookieJar[Cookie(version=0, name='ASP.NET_SessionId', value='...)]>
На данный момент я хотел бы сохранить информацию о сеансе и включить ее в будущие запросы. Например, ниже, я хотел бы просмотреть обычную страницу (т.е. home
), поэтому я пытаюсь зайти на страницу и отправить файлы cookie вместе.
test = ses.post('<url>/home', cookies= r.cookies)
Однако на этом этапе, когда я смотрю на test.text
в python, я вижу по коду, который я только что перенаправил обратно на исходную страницу Verify.aspx
.
Я довольно много гуглил, но безуспешно. У меня есть знакомство с Python, но я ничего не могу сказать об этом. Я бы на самом деле предпочел и решение R, так как я лучше с ним, но мне кажется, что библиотеки очистки Python лучше, чем пакеты R. Я не хочу использовать что-то вроде Selenium, кроме как через Python или R, поскольку я хочу получать и обрабатывать данные без какого-либо взаимодействия с пользователем.
Я чувствую себя застрявшим - я знаю, что передаю законный код и получаю действительные сессионные куки-файлы, так как могу нормально входить через обычную веб-страницу. Я просто не знаю, как собирать, сохранять и передавать информацию о cookie-файлах сессии на страницу во время последующих вызовов URL.
Все, что я прочитал, указывает на то, что библиотека requests
должна обрабатывать все, что касается файлов cookie, но я думаю, что я просто передаю их неправильно.
Может кто-нибудь подсказать, что я мог бы попробовать дальше?
#
EDIT
Спасибо за поиск, @Faboor. Я думаю, что нахожусь на лучшем пути, так как теперь у меня другое сообщение об ошибке. Теперь, когда я смотрю на содержимое print(test.text)
, оно говорит: «Ваш браузер отправил запрос, который этот сервер не может понять». Это нормально, что второй URL-адрес, к которому я пытаюсь получить доступ, не является отдельной страницей (то есть она выглядит как папка, а не как что-то вроде index.html)?