Этикет

Я рассматриваю возможность создания простого веб-приложения для очистки, чтобы извлечь информацию с веб-сайта, который, как представляется, не запрещает это.

Я проверил другие альтернативы (например, RSS, веб-сервис), чтобы получить эту информацию, но на данном этапе их нет.

Несмотря на это, я также разработал/поддерживал несколько веб-сайтов самостоятельно, и поэтому я понимаю, что если веб-скребок делается наивно/жадно, это может замедлить работу других пользователей и, как правило, становится неприятностью.

Итак, какой этикет участвует в терминах:

  • Количество запросов в секунду/минуту/час.
  • Содержимое HTTP-агента пользователя.
  • Содержимое HTTP-ссылки.
  • Настройки кэша HTTP.
  • Размер буфера для больших файлов/ресурсов.
  • Правовые вопросы и вопросы лицензирования.
  • Хорошие инструменты или подходы к разработке.
  • Robots.txt, это важно для веб-соскабливания или просто сканеров/пауков?
  • Сжатие, такое как GZip в запросах.

Обновление

Нашел этот актуальный вопрос о Meta: Этикет Screen StapOverflow. Ответ Джеффа Этвуда содержит несколько полезных рекомендаций.

Другие связанные вопросы StackOverflow:

Параметры для очистки html

Ответ 1

Соблюдайте запрос на сайт robot.txt, это, вероятно, один из лучших и наиболее этических способов прийти к соглашению, не разговаривая ни с кем на сайте.

Определите себя соответствующим образом в заголовке UserAgent. Делая это, сайт может видеть, кто вы, и ограничивать/разрешать определенные области своего сайта вам явно. Например, посмотрите на пользовательские агенты большого парня, приведенные ниже Google, и разработайте один из них, который содержит страницу, описывающую, кто вы и как сообщить об ошибках, которые вы скачали.

Строка пользовательского агента Google: Googlebot/1.0 ([email protected] http://googlebot.com/)

Использовать сжатие gzip/deflate, если сайт поддерживается, это экономит ваше время и пропускную способность сайта.

Вы должны быть в порядке с юридической точки зрения (хотя я не юрист или юрист), если вы будете следовать своим правилам robots.txt и условиям.

В конце концов, я думаю, что лучший совет был от runrunraygun, рассматривая его единственный сайт. Обращение к администратору и понимание того, что было бы приемлемым и уважающим их пожелания, доставят вас далеко.

Ответ 2

robots.txt имеет значение: посмотрите на это, чтобы понять, что отношение сайта относится к нечеловеческим читателям. Показ некоторой осведомленности о его содержании обеспечит некоторую уверенность в webadmin, когда вы отправите им по электронной почте, что вы позаботитесь о том, чтобы уважать сайт, когда вы царапаете.

Ответ 3

Я бы предложил отправить по электронной почте веб-мастеру, сказать им, что вы пишете не вредоносные script и т.д. и спрашиваете, с чем они счастливы, и как часто.

мы запускаем поисковый сканер домена, который подбирает документы PDF/word и т.д. из дружественных доменов, и большинство запросов, которые мы запросили, - это 5-секундный промежуток между запросами и работает только ночью.

Ответ 4

Это действительно зависит от того, что вы соскабливаете, и сколько из вас вы соскабливаете. Например, я должен был написать скребок около недели назад, чтобы просканировать несколько сотен страниц. Чтобы быть щедрым, я поставил одну секунду ожидания после каждой страницы. Потребовалось несколько минут, чтобы вернуть данные, но я уверен, что владелец сайта по достоинству оценит любой недостаток, который я могу оставить в процессе.

Ответ 5

Я бы также добавил, что даже на Python есть глобальная блокировка перехватчика, например. GIL Если вы запрашиваете данные, а скорость имеет смысл с помощью модуля import multithreading, это может быть весьма полезно, поскольку запрос требует времени. В то же время, если вы запрашиваете много данных (делая большую сумму запросов), вы можете быть заблокированы, и ваше соединение может быть заблокировано. Невозможно рассказать о пороге, если вы не выполните тесты.

Ответ 6

  • ~ 5 секундная задержка на домен. Вы можете настроить задержку на основе того, насколько быстро сайт возвращает контент.
  • пользовательский агент установлен в общий браузер, поэтому веб-сайт отображается как обычный
  • referrer установлен для того, где страница была связана с
  • Как долго я кешу зависит от веб-сайта. Обычно 1 месяц.
  • Я загружаю только текстовые и графические файлы.
  • "Легче просить прощения, чем получать разрешение"
  • Я использую существующие библиотеки Python, такие как lxml и некоторые из них разработал сам.
  • веб-соскабливание включает в себя сканеры/пауки, поэтому да. robots.txt релевантен
  • всегда сжимать

Я делаю много веб-соскабливания и обнаружил, что большинство веб-сайтов вообще не отслеживают IP-адреса для подозрительного поведения.

Если вы заинтересованы, вместо загрузки содержимого непосредственно с вашего целевого сайта вы можете использовать Google Cache, Archive.org и т.д. Или использовать прокси.

Ответ 7

Когда вы приобретаете данные для своей компании, всегда лучше работать со специальной службой очистки веб-страниц. Поскольку веб-скребок является технологически интенсивным процессом, его внутренняя работа может легко истощить ваши ресурсы и ослабить рост компании.