Я собираюсь разработать некоторую функциональность, которая будет сканировать различные публичные веб-сайты и обрабатывать / собирать данные на них. Ничто так не зловеще, как поиск адресов электронной почты - на самом деле это то, что может фактически привлечь дополнительный трафик на их сайты. Но я отвлекся.
Существуют robots.txt
ли какие-либо правила или руководящие принципы, в письменной или неписаной форме, которым я должен следовать, чтобы (а) избежать появления вредоносных программ и быть потенциально заблокированными, и (б) не вызвать каких-либо проблем для владельцев сайта / веб-мастеров?
Некоторые примеры, которые я могу придумать, которые могут иметь или не иметь значение:
- Количество параллельных запросов
- Время между запросами
- Время между полными обходами
- Избегание потенциально разрушительных ссылок (не хочу быть Пауком Судьбы - но кто знает, практично ли это)
Это действительно просто плевок; есть ли проверенная и проверенная мудрость, которая широко применима к любому, кто намеревается написать или использовать паука?
источник
Ответы:
Кроме того , повинуясь robots.txt, подчиняться
nofollow
иnoindex
в<meta>
элементах и ссылки:Многие считают, что robots.txt не является правильным способом блокировки индексации, и из-за этой точки зрения многие владельцы сайтов указали
<meta name="robots" content="noindex">
тегу, чтобы веб-сканеры не индексировали страницу.Если вы пытаетесь построить график связей между веб-сайтами (что-то похожее на PageRank),
(и
<meta name="robots" content="nofollow">
) должно означать, что исходный сайт недостаточно доверяет целевому сайту, чтобы дать ему надлежащую поддержку. Таким образом, хотя вы можете индексировать целевой сайт, вы не должны хранить отношения между двумя сайтами.SEO - это больше искусство, чем настоящая наука, и его практикуют многие люди, которые знают, что они делают, и много людей, которые читают резюме людей, которые знают, что они делают. Вы столкнетесь с проблемами, когда вас заблокируют на сайтах за действия, которые другие сайты сочли вполне приемлемыми из-за какого-то правила, которое кто-то подслушал или прочитал в сообщении блога на SEOmoz, которое может или не может быть правильно интерпретировано.
Из-за этого человеческого фактора, если вы не являетесь Google, Microsoft или Yahoo !, вы считаете себя злым, если не доказано иное. Вы должны проявить особую осторожность, чтобы действовать так, как будто вы не представляете угрозы для владельца веб-сайта, и действовать в соответствии с тем, как вы хотели бы, чтобы потенциально вредоносный (но, надеюсь, доброкачественный) сканер действовал:
/admin/
в них.Даже тогда это будет тяжелое сражение, если вы не прибегнете к таким методам черной шляпы, как подмена UA или намеренная маскировка шаблонов сканирования: многие владельцы сайтов по тем же причинам, что и выше, блокируют неизвестного сканера в поле зрения вместо того, чтобы принимать вероятность того, что кто-то не пытается взломать их сайт. Готовьтесь к большому количеству неудач.
Единственное, что вы можете сделать для борьбы с негативным изображением, которое будет иметь неизвестный сканер, - это указать в строке user-agent, кто вы:
Где
http://example.com/aarobot.html
объясняет, чего ты пытаешься достичь и почему ты не угроза. На этой странице должно быть несколько вещей:Последний из них является ключевым: хороший отказ подобен гарантии возврата денег ™ и приносит необоснованное количество гудвилла. Это должно быть гуманно: один простой шаг (либо адрес электронной почты, либо, в идеале, форма), и всеобъемлющий (не должно быть никаких "ошибок": отказ от участия означает прекращение сканирования без исключения).
источник
(+http://example.com/aarobot.html)
. Я не знаю, какова цель+
знака здесь, но я видел это часто. Web-Sniffer делает это, как и многие другие.rel="noindex"
как будто это<a>
атрибут, но страница, на которую вы ссылаетесь, описывает его как часть атрибута<meta>
тегаcontent
. Это и то и другое, или это была опечатка в ответе?Хотя это не отвечает на все ваши вопросы, я считаю, что это поможет вам и сайтам, которые вы сканируете.
По аналогии с техникой, используемой для грубого использования веб-сайтов без привлечения внимания, если у вас достаточно большой пул сайтов, которые нужно сканировать, не сканируйте следующую страницу на сайте, пока не просканируете следующую страницу на всех других сайтах. , Что ж, современные серверы позволяют повторно использовать HTTP-соединение , поэтому вы можете захотеть сделать больше, чем один, чтобы минимизировать накладные расходы, но идея остается в силе. Не сканируйте один сайт до истощения, пока не перейдете к следующему . Поделиться любовью.
В конце дня вы все равно можете сканировать столько же страниц, но среднее использование полосы пропускания на одном сайте будет намного ниже.
Если вы хотите не быть пауком гибели, нет надежного метода. Если кто-то захочет засунуть бобы в нос , он сделает это и, вероятно, сделает это так, как вы никогда не могли бы предсказать. Тем не менее, если вы не возражаете против пропуска действующей страницы, создайте черный список слов для ссылки, которая помешает вам перейти по ней. Например:
Не дурак, но иногда вы просто не можете помешать людям учиться трудным путем;)
источник
robots.txt
уже упоминается в вопросе, и можно предположить, что.Мой единственный совет - слушать, что говорит вам сайт, который вы сканируете, и динамически изменять свое сканирование в ответ на это.
Сайт работает медленно? Ползайте медленнее, чтобы не допускать DDOS. Это быстро? Ползти немного больше, тогда!
Сайт ошибается? Ползайте меньше, чтобы не перегружать сайт, уже находящийся под принуждением. Используйте экспоненциально увеличивающееся время повторных попыток, поэтому, чем дольше будет происходить ошибка, тем меньше повторных попыток. Но не забудьте повторить попытку позже, чтобы вы могли увидеть все, что упускаете из-за, скажем, недельной ошибки в определенном пути URL.
Получать много 404-х? (помните, что наши модные 404 страницы также требуют серверного времени!) Старайтесь пока не сканировать дополнительные URL-адреса с этим путем, поскольку, возможно, все, чего там не хватает; если
file001.html
-file005.html
нет, спорим, доллары к пончикамfile999.html
тоже нет! Или, возможно, уменьшите процент времени, когда вы что-то извлекаете на этом пути.Я думаю, что именно здесь многие наивные сканеры совершают серьезные ошибки, имея одну роботизированную стратегию, которая оправдывает их, независимо от сигналов, которые они получают с целевого сайта.
Умный сканер реагирует на целевой сайт (сайты), к которому он относится.
источник
Другие упоминали некоторые мантры, но позвольте мне добавить некоторые.
Обратите внимание на тип и размер файла. Не тяните эти огромные двоичные файлы.
Оптимизируйте для некоторых типичных страниц "списка каталогов" веб-сервера. В частности, они позволяют сортировать по размеру, дате, имени, разрешениям и так далее. Не рассматривайте каждый метод сортировки как отдельный корень для сканирования.
Попросите gzip (сжатие на лету), когда это возможно.
Ограничить глубину или обнаружить рекурсию (или оба).
Ограничить размер страницы. На некоторых страницах реализованы предупреждения, чтобы помешать удаляющим электронную почту ботам. Это страница, которая загружается со скоростью улитки и имеет длину в терабайты.
Не индексируйте 404 страницы. Двигатели, которые имеют самые большие показатели, делают это и получают заслуженную ненависть в обмен.
Это может быть сложно, но попробуйте обнаружить фермы с балансировкой нагрузки. Если v329.host.com/pages/article.php?99999 возвращает то же, что и v132.host.com/pages/article.php?99999, не очищайте полный список серверов от v001.host.com до v999. host.com
источник
Я просто добавлю одну маленькую вещь.
Авторское право и другие правовые вопросы: я знаю, что вы пишете, что они являются общедоступными веб-сайтами, поэтому авторских прав может не быть, но могут быть и другие правовые проблемы для хранения данных.
Это, конечно, зависит от того, какие данные страны вы храните (и где вы их храните). Показательный пример - проблемы с Патриотическим актом США против Директивы ЕС о защите данных. Краткое изложение проблемы заключается в том, что американские компании должны предоставлять свои данные, например. по запросу ФБР, без информирования пользователей об этом, где в Директиве о защите данных говорится, что пользователи должны быть проинформированы об этом. Se http://www.itworld.com/government/179977/eu-upset-microsoft-warning-about-us-access-eu-cloud
источник
Назовите своего веб-сканера либо этим, либо пауком, связанным с вашим именем. Это важно. Аналитические движки и тому подобное ищут тех, кто ассоциирует вас с ... пауком. ;)
Я видел, как это делается через заголовок запроса User-Agent.
источник
источник