CoderCastrov logo
CoderCastrov
Разработка веб-сайтов

Как использовать User-Agent в Python?

Как использовать User-Agent в Python?
просмотров
3 мин чтение
#Разработка веб-сайтов
Table Of Content

User-Agent для веб-парсеров

Использование User-Agent является важной частью для любого веб-парсера, который пытается собирать информацию с веб-сайта. Это фантастически! Но подождите минутку, что означает User-Agent?

Синтаксис

User-Agent: <продукт> / <версия-продукта> <комментарий>

Части User-Agent

  • <**продукт**> Идентификатор продукта - его название или кодовое имя разработки.
  • <**версия-продукта**> Номер версии продукта.
  • <**комментарий**> Ноль или несколько комментариев, содержащих дополнительные сведения. Например, информация о подпродукте.

Обычно User-Agent выглядит так.

User-Agent: Mozilla/5.0 (<информация-о-системе>) <платформа> (<детали-платформы>) <расширения>

САЙТЫ ДЛЯ ПОИСКА ПОЛЬЗОВАТЕЛЬСКИХ АГЕНТОВ

MDN_

Первый сайт - MDN. Независимо от вашего профессионализма, этот сайт является настоящим кладезем для веб-разработчиков. Здесь вы можете прочитать множество полезных статей о веб-разработке.

Ресурсы для разработчиков, от разработчиков

Здесь вы можете найти информацию о User-Agent и о том, как его использовать в своих скриптах. Вот ссылка ниже:

User-Agent - HTTP | MDN

Заголовок запроса User-Agent - это характерная строка, которая позволяет серверам и сетевым пирам определить приложение...

developer.mozilla.org

РАЗРАБОТЧИКИ WHATISMYBROWSER

Другой хорошей альтернативой для нахождения "User-Agent" является платформа под названием "WhatIsMyBrowser — Developers". На этом веб-сайте содержится тысячи ссылок на User-Agent. Вы можете легко скопировать и вставить их в свой скрипт.

Вот веб-сайт:

https://developers.whatismybrowser.com/useragents/explore/software_type_specific/web-browser/?utm_source=whatismybrowsercom&utm_medium=internal&utm_campaign=breadcrumbs


Коды ответов HTTP

Сначала вам нужно знать коды ответов HTTP. Коды ответов HTTP - это уникальные ответы сервера, когда вы отправляете запрос на любой HTTP-сервер. Например, если вы получаете код ответа 200, это означает, что соединение "OK" успешно.

Ответы группируются в пять классов:

  • 1xx: Информационные - Запрос получен, продолжается процесс
  • 2xx: Успех - Действие успешно получено, понято и принято
  • 3xx: Перенаправление - Для завершения запроса необходимы дополнительные действия
  • 4xx: Ошибка клиента - Запрос содержит неверный синтаксис или не может быть выполнен
  • 5xx: Ошибка сервера - Сервер не смог выполнить видимо действительный запрос

Список кодов ответов HTTP можно найти по следующим ссылкам:

Список кодов состояния HTTP - Wikipedia

Это список кодов состояния ответа протокола передачи гипертекста (HTTP). Коды состояния выдаются сервером в...

en.wikipedia.org

Реестр кодов состояния протокола передачи гипертекста (HTTP)

1xx: Информационный - Запрос получен, продолжение процесса 2xx: Успех - Действие успешно получено...

www.iana.org

Коды состояния ответа HTTP - HTTP | MDN

Этот промежуточный ответ указывает, что клиент должен продолжить запрос или игнорировать ответ, если запрос...

developer.mozilla.org


ИСПОЛЬЗОВАНИЕ USER-AGENTS

Просто вставьте данный код в ваш Python IDE или Jupyter Notebook. Вы легко получите результаты.

Во-первых, начнем с просмотра User-Agent.

import requests 
from pprint import pprint#Проверим, какие заголовки отправляются при отправке запроса на HTTPBin
r = requests.get(‘[http://httpbin.org/headers'](http://httpbin.org/headers'))
pprint(r.json())

Затем мы изменяем этот User-Agent, как показано в коде ниже.

#!/usr/bin/env pythonimport requests
from pprint import pprintheaders = {“User-Agent”:”Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"}
#Проверим, какие заголовки отправляются при отправке запроса на HTTPBin
r = requests.get(‘[http://httpbin.org/headers',headers=headers](http://httpbin.org/headers',headers=headers))
pprint(r.json())

Как видите, заголовки изменились.

Теперь наши HTTP-запросы выполняются от имени "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36". Сервер HTTP предполагает, что наши запросы не поступают из Python, а поступают из "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"

Также вы можете найти подробности по этой ссылке:

Как подделать и изменить User-Agent с использованием Python 3

При парсинге множества страниц с веб-сайта использование одного и того же User-Agent постоянно приводит к обнаружению парсера. A...

www.scrapehero.com