2010-11-10 3 views
3

Я пытался найти som good how to, или какой-то пример, который хорош для новичков, когда дело доходит до написания вашего первого веб-искателя. Я хотел бы написать его в C#. У кого-нибудь есть хороший код примера для обмена или несколько советов на некоторых сайтах, где я могу найти информацию для C# и некоторые bacic webcrawling.Написание моего первого веб-браузера

Благодаря

ответ

4

HtmlAgilityPack является вашим другом.

+2

Единственное плохое в том, что он делает свою работу так хорошо, что Фор не может ничего научиться от ее использования. :-) –

+0

@Steven - но он не должен его использовать, только изучите его :) – KevinDTimm

+1

@Kevin: О, но искушение! –

3

Да, HtmlAgeilityPack - хороший инструмент для анализа HTML, но этого явно недостаточно.

Есть 3 элемента в ползания:

1) Обход себя, т.е. зацикливание через веб-сайты: Это может быть сделано путем отправки запросов на случайный IP-адрес, но это не работает хорошо, так как многие сайты используют общий IP адрес HTTP с заголовком хоста, поэтому использование IP не ударяет по нему. С другой стороны, существует слишком много IP-адресов, которые не используются или не размещаются на веб-сервере, поэтому это никуда не денется.

Предлагаю вам отправить запрос в google (искать слова из словаря) и просканировать полученные результаты.

2) Оказание контента: Многие веб-сайты генерируют HTML-контент в JavaScript при загрузке формы, поэтому, если вы отправляете простой запрос, он не сможет захватить контент, поскольку пользователь сможет увидеть его , Вам нужно отобразить страницу в браузере, и это можно сделать с помощью Webkit.net, который является инструментом с открытым исходным кодом, хотя он все еще находится в бета-версии.

3) Понимание и разбор HTML: Использование HTML-пакета, а также множество примеров в Интернете. Это можно использовать и для обхода сайта.

+0

Чтобы привязаться к элементу №1, может быть, было бы неплохо указать искателя на главную страницу сайта, а затем перевести туда ссылки. Указание глубины было бы идеальным, так что ваш искатель случайно не застрял бы в петле. – jlafay

+0

Что касается рендеринга, что вы думаете об использовании элемента управления IE Active X, предоставляемого frameowrk для визуализации страниц? – dexter

+0

IE ActiveX также может работать, но это ужасная вещь для использования и работы. – Aliostad

2

Некоторое время назад я также хотел написать пользовательский веб-сканер, и нашел этот документ:

Web Crawler

Он имеет много информации, и очень хорошо написано ИМО.

Смежные вопросы