1. A method comprising: preprocessing, by a preprocessing module, a set of information sources to extract content from text and existing links and to extract attributes of the existing links in said set of information sources according to some predetermined criteria, wherein the existing links have a primary link and have associated levels which increase from the primary link's level, and wherein the extracting includes: limiting the depth of information extracted from the set of information sources in response to an input, limiting the maximum amount of information extracted from the set of information sources, wherein the set of information sources includes at least a first information source and a second information source, and wherein the first information source at least includes the primary link, limiting the maximum amount of information extracted from at least one page of the first information source and the second information source, ranking the set of information sources automatically or in response to an input, determining that said first information source is related to the second information source, and in response to determining that said first information source is related to the second information source, clustering the first information source, wherein the second information source corresponds to the existing links of the first information source, and wherein maximum information is extracted from the second information source is limited based on the level of the link; receiving, by a search module, a search query and extracting search results from amongst the preprocessed information sources based on the content from the text and the existing links; generating search results based on content from the existing links which comprises extracting information from the second information source; tagging said content extracted from the links in said information sources, wherein a tag includes a keyword or term associated with the extracted content; and displaying said set of search results.