Можно ли получить доступ к вошедшему в систему сеансу, используя Headless Chrome, если у вас есть контроль над этим вошедшим в систему сеансом? - PullRequest
0 голосов
/ 21 мая 2018

Мне нужно записаться на прием на веб-сайте.Эти встречи выпускаются спорадически и записываются быстро.Чтобы даже увидеть доступное время встречи, вы должны войти в систему и заполнить reCaptcha.Если бы я хотел написать скребок, использующий Headless Chrome, чтобы постоянно чистить сайт и уведомлять меня о появлении новой встречи, то для каждого входа в систему потребуется каждый раз побеждать reCaptcha, что, по крайней мере, ненулевое затруднение.

Лучшим подходом (я думал) было бы войти в систему один раз вручную, захватить мои сеансовые куки, а затем загрузить их в Headless Chrome, прежде чем отправлять запрос непосредственно на страницу времени встречи.Сервер увидит мой запрос, увидит мои сеансовые файлы cookie и ответит так, как если бы сеанс, вошедший вручную, был обновлен.Это почти так же, как указано в ответе на этот вопрос StackOverflow: как управлять сеансом входа в систему через Chrome без головы?

Но это не работает, и я не могу понять,Зачем.Меня перенаправляют каждый раз прямо на страницу входа.Я пробовал на Chrome и Firefox, а также на нескольких других веб-сайтах, требующих входа в систему (Facebook, Reddit и т. Д.).

Как эти серверы могут различать между исходным клиентом и клиентом, использующим скопированные файлы cookie, когда файлы cookie используются серверами для первичной идентификации клиентов?

Точные шаги для воспроизведения:

  1. Войдите на выбранный вами сайт в Chrome, скажем, в Facebook.
  2. Экспортируйте файлы cookie в буфер обмена с сайта, используя расширение EditThisCookie
  3. Запустите окно инкогнито (для сброса активных файлов cookie) и импортируйте те сеансовые файлы cookie с тем же удобным расширением.
  4. Перейдите к целевому URL-адресу прошлой формы входа.
  5. Переадресация.
  6. Разочарование.
...