Подтвердить что ты не робот

Каковы основные соображения при создании веб-искателя?

Я только начал думать о создании/настройке веб-искателя сегодня и очень мало знаю о веб-гуглере/методе робота. Большинство писем, которые я нашел, кажутся старыми и неудобными, поэтому я хотел бы получить некоторые текущие (и практические) идеи сообщества разработчиков веб-сайтов.

Я хочу использовать гусеничную прогулку по "сети" для сверхпростой цели - "делает ли разметка сайта XYZ соответствие условиям ABC?".

Это вызывает много вопросов для меня, но я думаю, что два основных вопроса, которые мне нужны, чтобы сначала уйти с пути:

  • Чувствуется, что это немного "плохой" от выхода - это приемлемо?
  • Какие конкретные соображения должны предпринять сканер, чтобы не расстраивать людей?
4b9b3361

Ответ 1

Obey robots.txt(и не слишком агрессивный, как уже было сказано).

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

Ответ 2

Помимо положительных ответов WillDean и Einar, я бы порекомендовал вам потратить время, чтобы прочитать о значениях кодов ответа HTTP и о том, что ваш искатель должен делать, когда сталкиваешься с каждым, поскольку это будет иметь большое значение для вашего производительность, а также на то, чтобы вы не были заблокированы на некоторых сайтах.

Некоторые полезные ссылки:

HTTP/1.1: определения кода состояния

HTTP-тесты Aggregator

Wikipedia

Ответ 3

Не забудьте указать URL-адрес в строке user-agent, в котором объясняется, кто/что/почему ваш робот сканирует.

Ответ 4

Также не забывайте подчиняться метатегам бота: http://www.w3.org/TR/html4/appendix/notes.html#h-B.4.1.2

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

Ответ 5

Все хорошие моменты, сделанные здесь. Вам также придется иметь дело с динамически генерируемыми ссылками и параметрами Java и JavaScript, параметрами и идентификаторами сеанса, сбрасыванием одиночных и двойных кавычек, неудачными попытками относительных ссылок (используя../../, чтобы пройти мимо корневого каталога), чувствительность к регистру, кадры, перенаправления, файлы cookie...

Я мог бы продолжать в течение нескольких дней, и вроде бы. У меня есть Контрольный список роботов, который охватывает большую часть этого, и я счастлив, что могу.

Вы также должны подумать об использовании кода искателя робота с открытым исходным кодом, потому что он дает вам огромную ногу по всем этим проблемам. У меня также есть страница: код робота с открытым исходным кодом. Надеюсь, что это поможет!

Ответ 6

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

Другими словами, убедитесь, что ваш искатель не слишком агрессивен.

Ответ 7

Это идеально подходит - просто убедитесь, что он посещает каждую страницу только один раз для каждого сеанса. Поскольку вы технически создаете поисковый робот, вы должны подчиняться правилам robots.txt и no-cache. Люди могут по-прежнему блокировать ваш бот, если необходимо, блокируя IP-адреса.

Вы только ищите исходный код, насколько я могу сказать, поэтому вы захотите построить что-то, чтобы следовать за <link> для таблиц стилей и <script src="..."></script> для JavaScripts.

Ответ 8

Загрузка - большое значение. Ограничьтесь тем, как часто вы просматриваете конкретный сайт и какая самая основная информация вам нужна для достижения вашей цели. Если вы ищете текст, не загружайте все изображения, такие вещи.

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

Ответ 9

Вам нужно будет добавить некоторые возможности для сайтов/доменов черного списка или других вещей (диапазоны IP, ASN и т.д.), чтобы ваш паук не увяз в спам-сайтах.

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

Также не доверяйте статусу 200, чтобы обозначить "страница существует". На мой взгляд, значительная часть сайтов отправляет 200 за "Не найденные" или другие ошибки (наряду с большим HTML-документом).