Как войти в систему с помощью паука-скрапа, когда страница входа используется как метод GET вместо метода POST? - PullRequest
0 голосов
/ 08 февраля 2019

Я планирую войти на этот веб-сайт с помощью паука-скрапа.Страница входа представляет собой метод запроса GET

enter image description here

Как видите, это метод GET, и для идентификатора и идентификатора не отображаются никакие атрибуты.passeword.

enter image description here но в HTML-коде есть ссылка (она не работает при записи в адресной строке моего браузера), она указывает метод POSTmethod="post".Но когда я вхожу, в сети консоли браузера не появляется файл POST.

Что делать тогда?

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

На самом деле в сетевом журнале есть запрос POST, но вы должны включить «Persist Logs» («Conserver les journaux»): enter image description here Этот запрос POST вызывает перенаправление, которое вызывает журналочистить без этой настройки.

Здесь нужно иметь в виду, что вам нужно получить токен CSRF.Вот краткий пример того, как вы можете войти с помощью scrapy shell:

scrapy shell https://www.paris-turf.com/

Затем выполните следующее:

from scrapy import FormRequest

# GET the login form fragment.
fetch('https://www.paris-turf.com/compte/login')

# Grab the CSRF token.
token = response.css('[name="_csrf_token"]::attr(value)').get()

# Login. This issues a redirect.
fetch(FormRequest('https://www.paris-turf.com/compte/login_check', formdata={'_username': 'your@email.com', '_password': 'yourpassword', '_csrf_token': token}))

# Get the logged in username.
response.css('.media-heading .text-italic::text').get()
0 голосов
/ 08 февраля 2019

Похоже, что это POST и отправляются переменные записи _username и _password: (крышка экрана из Firefox, когда я нажал "Редактировать и отправить заново" на правой боковой панели)

Screencap of Network tools during login

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...