Предисловие.
Когда ты переходишь по ссылке, посылается GET запрос. Когда отправляешь данные (с формы, например) посылается POST запрос. Подделывая запросы посылаемые сайту, можно автоматизировать действия на сайте.
Сейчас я расскажу о создании бота на запросах. Раньше, я уже создавал его здесь, но это было первое знакомство, и я там много-чего пропустил. В этой же статье, я исправлю данную проблему.
Где брать запросы?
Установите браузер Mozilla Firefox, зайдите на нужный вам сайт. И нажмите F12, чтобы открыть Инструменты разработчика. Затем, перейдите во вкладку Сеть, и перезагрузите страницу.
- Слева — выбираем запрос.
- Справа — рассматриваем его более детально.
В правой части, расположена вся информация о запросе, эти данные, вам понадобятся для написания бота.
Теперь перейдем к отправке запросов.
Здесь, я не буду подробно расписывать код, т.к. уже это сделал в предыдущих статьях.
Посылаем GET запрос.
В простейший GET запрос.
requets.get("https://www.google.com/")
Можно передать заголовок.
header = {
'user_agent': 'Original userAgent'
}
requets.get("https://www.google.com/", headers=header)
Еще куки
cookie = {
'auth_token': 'qwerty123'
}
requets.get("https://www.google.com/", cookies=cookie)
И параметры.
param_data = {
'age': 16,
'sex': male
}
requets.get("https://www.google.com/", params=param_data)
Подобная передача параметров аналогична следующей ссылке:
https://www.google.com/?age=16&sex=male
Посылаем POST запрос.
Вместе с POST запросом, зачастую передаются данные.
requets.post("https://www.google.com/", data={'key': 'value'})
В редких случаях этого не делается.
requets.post("https://www.google.com/")
Другие типы запросов.
Requests, также, способен отправлять следующие запросы:
requests.put("https://www.google.com/", data={'key': 'value'})
requests.delete("https://www.google.com/")
requests.head("https://www.google.com/")
requests.options("https://www.google.com/")
Далее полученные данные, парсите через BeautifulSoup, как это делать, я говорил здесь. И автоматизируйте действия на сайте.
Запросы для ленивых.
Недавно узнал о супер-простом способе копирования запросов из браузера в Python.
Для этого, скопируйте запрос как cURL (Windows)
Зайдите на сайт curlconverter.com. И, вставьте curl комманду в левое окно.
И, как по волшебству, весь код запроса создался автоматически.
Важно. На некоторых сайтах, данные передаются в сжатом виде. Вследствие чего, расшифровать, и тем более, распарсить становится невозможно. Чтобы этого избежать, удалите эту строку (или похожую) у себя в заголовке (headers).
'Accept-Encoding': 'gzip, deflate, br',