Size: a a a

2020 September 07

BK

Boris Krutskih in Scrapy
всем привет, подскажите как сделать базову авторизацию через форму в scrapy?
Пытаюсь через formRequest
https://dpaste.org/OsEg

в итоге на урл с логином получаю ответ 400

Конечная цель такова: авторизоваться, спарсить все урлы на страницах, и записать в json или csv
источник

К

Кирилл in Scrapy
Boris Krutskih
всем привет, подскажите как сделать базову авторизацию через форму в scrapy?
Пытаюсь через formRequest
https://dpaste.org/OsEg

в итоге на урл с логином получаю ответ 400

Конечная цель такова: авторизоваться, спарсить все урлы на страницах, и записать в json или csv
"HTTP 400 Bad Request указывает, что сервер не смог понять запрос из-за недействительного синтаксиса. Клиент не должен повторять этот запрос без изменений"
источник

AR

Andrey Rahmatullin in Scrapy
Смотри что браузер шлёт
источник

BK

Boris Krutskih in Scrapy
Andrey Rahmatullin
Смотри что браузер шлёт
request headers?
источник

AR

Andrey Rahmatullin in Scrapy
В целом.
источник

AR

Andrey Rahmatullin in Scrapy
Но для начала урл, метод и тело, хедеры рано пока смотреть
источник

BK

Boris Krutskih in Scrapy
Andrey Rahmatullin
Но для начала урл, метод и тело, хедеры рано пока смотреть
LoginForm[username]: 
LoginForm[password]:
LoginForm[rememberMe]: 0
LoginForm[rememberMe]: 1
login-button:

это form-data
источник

AR

Andrey Rahmatullin in Scrapy
вот уже лучше
источник

BK

Boris Krutskih in Scrapy
шлю вот-так
 def start_requests(self):
       return [
           FormRequest(
               # headers={
               #     'content-type': 'text/html; charset=UTF-8'
               # },
               url='https://som-url.com/login',
               formdata={
                   'LoginForm[username]': 'admin',
                   'LoginForm[password]': 'admin'
               },
               callback=self.after_login
           )
       ]
источник

AR

Andrey Rahmatullin in Scrapy
и?
источник

BK

Boris Krutskih in Scrapy
и получаю
2020-09-07 21:03:51 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://som-url.com/robots.txt> (referer: None)
2020-09-07 21:03:51 [scrapy.core.engine] DEBUG: Crawled (400) <POST https://som-url.com/login> (referer: None)
2020-09-07 21:03:51 [scrapy.spidermiddlewares.httperror] INFO: Ignoring response <400 https://som-url.com/login>: HTTP status code is not handled or not allowed
источник

AR

Andrey Rahmatullin in Scrapy
хорошо, мой первый совет всё ещё в силе
источник

AR

Andrey Rahmatullin in Scrapy
раз уж мы по кругу ходим
источник

BK

Boris Krutskih in Scrapy
ну с урлом и методом все впорядке)
источник

BK

Boris Krutskih in Scrapy
с веб-морды логинится
источник

BK

Boris Krutskih in Scrapy
Или я недостаточно в передает в form-data?
источник

К

Кирилл in Scrapy
Прочитай что ошибка значит. Ты шлешь не то, что нужно
источник

AR

Andrey Rahmatullin in Scrapy
Boris Krutskih
ну с урлом и методом все впорядке)
ну раз так то чини поля
источник

AR

Andrey Rahmatullin in Scrapy
Boris Krutskih
Или я недостаточно в передает в form-data?
у тебя есть возможность сравнить самому
источник

BK

Boris Krutskih in Scrapy
Andrey Rahmatullin
у тебя есть возможность сравнить самому
Вы правы)) _csrf требовало
источник