
Мое понимание: когда веб-браузер делает запрос на просмотр страницы, сервер отвечает HTML. Затем веб-браузер отображает этот HTML-код, он отправляет запросы для каждого встроенного объекта (например, изображения), который он видит в HTML, на сервер менее чем за секунду (плюс-минус). Однако, используя веб-скрапер, я делаю запрос на сервер, захватывая только HTML и не отображая HTML вообще.
Правильный этикет при веб-скрапинге гласит, что следует ограничить количество запросов максимум одним в секунду, чтобы не перегружать сервер.
Итак, почему не является проблемой, когда веб-браузер отправляет запрос для каждого встроенного объекта (несколько запросов в течение секунды), но для веб-скрепера отправка нескольких запросов в секунду только для исходного HTML-кода для разных страниц является проблемой?
решение1
Причины, по которым веб-скрейперы (не скрапперы) используют задержку:
- чтобы скрыть, что они занимаются парсингом веб-данных, и получить запрет на доступ к сайтам, которые они пытаются парсить (используя небольшие задержки между страницами, они больше похожи на веб-браузер, которым управляет человек, путешествующий по сети)
- из вежливости по отношению к владельцу веб-сайта (запрос большого количества данных за очень короткий промежуток времени может перегрузить сервер и сделать так, что сайт будет казаться неотзывчивым для других пользователей сайта)
Когда ваш браузер (или веб-скрейпер) запрашивает страницу, ему не нужно ждать целую секунду между запросами объектов на одной странице. Он может запрашивать их немедленно — это приводит к лучшему пользовательскому опыту (более быстрая загрузка страниц).
Чего «нормальный» пользователь не будет делать, так это запрашивать разные страницы в течение очень короткого периода времени. Пользователь посмотрит страницу, нажмет на ссылку, чтобы перейти на следующую страницу и т. д.
Поэтому, когда пользователь просматривает сайт, будет задержка между запросами разных страниц с одного и того же сайта. Это, скорее всего, задержка в 1 секунду, о которой вы упомянули в своем вопросе.
Очевидно, что для быстрого парсинга сайта веб-скрейперы захотят использовать максимально возможную задержку. Они будут использовать различные способы ускорения процесса (например, параллельно парсить несколько сайтов; сделать так, чтобы запросы поступали от нескольких разных пользователей).
Для веб-скрейперов всегда будет компромисс между причинами задержки и необходимостью выполнить работу.
Для получения более подробной информации см. запись наВикипедия