Как парсить авторизованно. python3, bs4, requests

Работу и принцип парсинга я подробно описываю в видео, здесь же акцентирую именно авторизацию.


Для авторизации нужно из кода отправить запрос на тот же url, на который отправляется запрос, если пытаться залогиниться в браузере.

Пример:


при попытке зайти на пикабу, во вкладке network появляется post запрос auth.php на адрес https://pikabu.ru/ajax/auth.php . Именно этот адрес нужно указывать в session, а сам session используется для того, что не просто авторизоваться, а выполнять все последующие запросы уже будучи авторизованным т.е. через session.post .

Как парсить авторизованно. python3, bs4, requests Парсер, Python, Программирование, Обучение, Видео, Длиннопост

Здесь же можно увидеть form data, данные, которые необходимы для успешной авторизации. Тут увы, прикручена капча, поэтому обойти её простыми путями не получится.

Но на большинстве сайтов, чаще всего требуется formdata = {"login": "ВАШЛОГИН", "password": "ВАШПАРОЛЬ"}

Как парсить авторизованно. python3, bs4, requests Парсер, Python, Программирование, Обучение, Видео, Длиннопост

сам же запрос на авторизацию выглядит так:


responce = session.post(link, data=data, headers=header).text


где, link - адрес пост запроса во вкладке нетворк.

data - данные form data в этом запросе (в хроме в самом низу)

headers - заголовки запроса (часто хватает user-agent)


После успешной авторизации остальные запросы выполняются так


r = session.get(url, headers=header, params=params)


если грубо то:

POST - для отдачи инфы на сервер.

GET - чтобы получить инфу С сервера.


Почему я советую написать парсер после калькулятора. Здесь сразу можно познакомиться с функциями, типами данных, пост/гет запросами. И самое главное, скорее всего у вас будет возникать куча различных ошибок в терминале. Поиск причин и исправление этих ошибок это основа для перестроения мышления. Ведь самое главное в данной сфере, уметь искать информацию.