Я использовал Scrapy для симуляции процесса входа пользователя на сайт (извините, я не могу поделиться URL здесь). После отправки правильного имени пользователя и пароля с помощью FromRequest, веб-сайт перенаправляет страницу входа в систему (A) на B, затем B снова перенаправляется на C, затем странным образом C снова на A; Хотя я ожидал C, но он всегда возвращается к A. Я совершенно уверен в правильности моего U / P, как будто я намеренно сделал это неправильно, перенаправление с веб-сайта отсутствует. С этим вводом U / P в браузер, я могу успешно достичь C.
Мой вопрос: как я могу попасть на страницу C с имитацией входа пользователя в Scrapy?
Код:
class MusicSpider(Spider):
name = 'music'
start_urls = (
'https://www.example.com/aro/login/',
)
handle_httpstatus_all = True
def parse(self, response):
if response.status == 200:
return FormRequest.from_response(response,
formdata={
'p': 'password',
'u': 'username',
'keepin': '0',
},
callback=self.scrape_pages)
def scrape_pages(self, response):
if response.status == 302:
filename = 'fly-1.html'
open_in_browser(response)
if (os.path.exists(filename)):
os.remove(filename)
with open(filename, 'wb') as f:
f.write(response.body)
self.log('Saved file %s' % filename)
Здесь ниже Scrapy текущий журнал:
2020 5:51:45 [scrapy.middleware] ИНФОРМАЦИЯ: конвейеры включенных элементов: [] 2020 5:51:45 [scrapy.core.engine] ИНФОРМАЦИЯ: Паук открыт 2020 5 : 51: 45 [scrapy.extensions.logstats] ИНФОРМАЦИЯ: просканировано 0 страниц (при 0 страницах / мин), очищено 0 элементов (при 0 элементах / мин) 2020 5:51:45 [scrapy.extensions.telnet] ИНФОРМАЦИЯ: Te lnet консольное прослушивание 127.0.0.1:5026 2020 5:51:49 [scrapy.downloadermiddlewares.cookies] DEBUG: полученные файлы cookie от: <200 <a href="https://www.example.com/aro/login/" rel="nofollow noreferrer">https://www.example.com/aro/login/> Set-Cook ie: c5ib = 0; Истекает = Чт 1 января 16:00:00 1970 по Гринвичу; Путь = / bin /
Set-Cook ie: c5ib = 0; Истекает = Чт 1 января 16:00:00 1970 по Гринвичу; Путь = / bin
Set-Cook ie: c5ib = 0; Истекает = Чт 1 января 16:00:00 1970 по Гринвичу; Путь = /
2020 5:51:49 [scrapy.core.engine] ОТЛАДКА: Сканировано (200) https://www.example.com/aro/login/> (реферер: нет) 2020 5:51:49 [scrapy.downloadermiddlewares.cookies] ОТЛАДКА: Отправка файлов cookie по адресу: https://www.example.com/aro/login> Cook ie: c5ib = 0
2020 5:51:50 [scrapy.downloadermiddlewares.cookies] ОТЛАДКА: Получено печенье от: <302 <a href="https://www.example.com/aro/login" rel="nofollow noreferrer">https://www.example.com/aro/login> Set-Cook ie: c5ib = 0; Истекает = Чт 1 января 16:00:00 1970 по Гринвичу; Путь = / bin /
Set-Cook ie: c5ib = 0; Истекает = Чт 1 января 16:00:00 1970 по Гринвичу; Путь = / bin
Set-Cook ie: c5ib = 0; Истекает = Чт 1 января 16:00:00 1970 по Гринвичу; Path = /
Set-Cook ie: c5ib = 00000000000000107711SL6yKs8iiluvP0gfZ8X3Rz; Безопасный; HttpOnly; Путь = /
2020 5:51:50 [scrapy.downloadermiddlewares.redirect] ОТЛАДКА: Перенаправление (302) на https://www.example.com/aro> из https://www.example.com/aro/login> 2020 5:51:50 [scrapy.downloadermiddlewares.cookies ] ОТЛАДКА: Отправка файлов cookie на: https://www.example.com/aro> Cook ie: c5ib = 00000000000000107711SL6yKs8iiluvP0gfZ8X3Rn
2020 5:51:51 [scrapy.downloadermiddlewares.redirect] ОТЛАДКА: 10 *> перенаправить (302) с https://www.example.com/aro> 2020 5:51:51 [scrapy.downloadermiddlewares.cookies] ОТЛАДКА: Отправка файлов cookie для: https://www.example.com/bin/c5i> Cook ie: c5ib = 0; c5ib = 0; c5ib = 00000000000000107711SL6yKs8iiluvP0gfZ8X3Rn
2020 5:51:55 [scrapy.downloadermiddlewares.redirect] ОТЛАДКА: Перенаправление (302) на https://www.example.com/aro/login> с https://www.example.com/bin/c5i> 2020 5:51:55. ] ОТЛАДКА: Отправка файлов cookie на: https://www.example.com/aro/login> Cook ie: c5ib = 00000000000000107711SL6yKs8iiluvP0gfZ8X3Rn
2020 5:51:56 [scrapy.downloadermiddlewares.cookies] ОТЛАДКА: 10 полученных файлов cookie от: <200 1051 *</a>> Set-Cook ie: c5ib = 0; Истекает = Чт 1 января 16:00:00 1970 по Гринвичу; Путь = / bin /
Set-Cook ie: c5ib = 0; Истекает = Чт 1 января 16:00:00 1970 по Гринвичу; Путь = / bin
Set-Cook ie: c5ib = 0; Истекает = Чт 1 января 16:00:00 1970 по Гринвичу; Путь = /
2020 5:51:56 [scrapy.core.engine] ОТЛАДКА: Сканировано (200) https://www.example.com/aro/login> (реферер: https://www.example.com/aro/login/) 2020 5:51: 56 [scrapy.core.engine] ИНФОРМАЦИЯ: Закрывающий паук (готово)