Программе MiniCrawler присущ ряд ограничений. Во-первых, в ней обнаруживаются только абсолютные ссылки, указываемые по гипертекстовой командеhref="http.Относительные ссылки при этом не обнаруживаются. Во-вторых, возврат к предыдущей ссылке в программе не предусматривается. И в-третьих, в ней отображаются только ссылки, но не окружающее их содержимое. Несмотря на все указанные ограничения данного скелетного варианта поискового робота, он вполне работоспособен и может быть без особых хлопот усовершенствован для решения других задач. На самом деле добавление новых возможностей в программу MiniCrawler — это удобный случай освоить на практике сетевые классы и узнать больше о сетевом подключении к Интернету. Ниже приведен полностью исходный код программы MiniCrawler.
/* MiniCrawler: скелетный вариант поискового робота.
Применение: для запуска поискового робота укажите URI в командной строке. Например, для того чтобы начать поиск с адресаwww.McGraw-Hill.com, введите следующую команду:
MiniCrawlerhttp://McGraw-Hill.com
*/
using System; using System.Net; using System.10;
class MiniCrawler {
// Найти ссылку в строке содержимого, static string FindLink(string htmlstr,
ref int startloc) {
int i;
int start, end; string uri = null;
i = htmlstr.IndexOf("href=\"http", startloc,
StringComparison.OrdinallgnoreCase);
if(i != -1) {
start = htmlstr. IndexOf (1111, i) + 1; end = htmlstr. IndexOf (1111, start); uri = htmlstr.Substring(start, end-start); startloc = end;
}
return uri;
}