Python. Пишем бота на запросах (WebScrapping) [11]

Предисловие.

Когда ты переходишь по ссылке, посылается 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',

Итоговый результат.

Пожалуйста отключи блокировщик рекламы, или внеси сайт в белый список!

Please disable your adblocker or whitelist this site!