@fridary

Как авторизироваться на сайте через скрипт?

Всем доброго дня,

Допустим есть новостной сайт с возможностью регистрации пользователей
Если пользователь зарегистрирован, то ему отображается один контент; если нет, то другой

Как мне сказать скрипту, который я разрабатываю (сейчас на Python и PHP), что вот логин и пароль от данного новостного сайта, выгрузи мне html данные для зарегистрированного пользователя?

Я понимаю, что при авторизации на сайте есть куки и сессии для проверки. Допустим я смогу подменить headers, скопировав их из Chrome Debugger, но ведь эти заголовки поменяются? И будет ли вообще это работать?

Пример выдачи для одного сайта Request Headers ниже при заходе через GET на страницу. Получается если куки иссякнут, то мне каждый раз нужно будет заходить на сайт вручную, копировать новое значение и вставлять в скрипт?

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/;q=0.8
Accept-Encoding:gzip, deflate
Accept-Language:en-US,en;q=0.8,ru;q=0.6
Cache-Control:no-cache
Connection:keep-alive
Cookie:PHPSESSID=sgjjv462jhc8o7jbqna6u7u1vs7; example-mo_ename=cad7d6de252ee31018d968134dcd2518f78ff; example-mo_type_auth=employer
Host:www.example.com
Pragma:no-cache
Referer:http://www.example.com/search.php?r=res&srcity=&srcategory=&submit=1
Upgrade-Insecure-Requests:1
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36


Request Cookies:
PHPSESSID	sgjjv46jhc8do7jbqn6u7u1vs7	N/A	N/A	N/A	38			
example-mo_ename	cad7d6de25ee31034718df96813dcd2518f78ff	N/A	N/A	N/A	53			
example-mo_type_auth	employer


Response -- html страничка
  • Вопрос задан
  • 2023 просмотра
Пригласить эксперта
Ответы на вопрос 3
usdglander
@usdglander
Yipee-ki-yay
cURL
Параметры: CURLOPT_COOKIE и CURLOPT_COOKIEFILE - это то, что вас интересует
Ответ написан
qlkvg
@qlkvg
python backend developer
Куки - меньшая из проблем. Любая вменяемая библиотека для работы с http умеет их держать в течение сессии, сохранять по окончании и загружать позже. Веселье начинается со всякими xsrf и прочими защитами. Пробуйте, материалов в интернетах тонна. Для примера на python+requests - https://www.youtube.com/watch?v=eRSJSKG4mDA.
Ответ написан
Комментировать
x67
@x67
Откройте дебаггер и произведите авторизацию. Посмотрите запрос, который отправляет данные на сайт. Наверняка он отправляет логин, пароль + что-то свое. Причем иногда сайты могут отправлять динамические параметры в целях защиты от автоматической авторизации, но навряд ли это ваш случай. Также отправляться может не пароль, а его хеш. Анализируете запрос и клонируете - его вам надо будет имитировать каждый раз, как только понадобится авторизация. Из библиотек, подойдет даже дефолтная requests из питона. И не нужны никакие селениумы, вы ж не артобстрел воробьиного гнезда собираетесь устроить.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы