Этикет
Я рассматриваю возможность создания простого веб-приложения для очистки, чтобы извлечь информацию с веб-сайта, который, как представляется, не запрещает это.
Я проверил другие альтернативы (например, 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
Когда вы приобретаете данные для своей компании, всегда лучше работать со специальной службой очистки веб-страниц. Поскольку веб-скребок является технологически интенсивным процессом, его внутренняя работа может легко истощить ваши ресурсы и ослабить рост компании.