All Topics  
Web crawler

 

   Email Print
   Bookmark   Link






 

Web crawler



 
 
A Web crawler is a computer program that browses the World Wide Web
World Wide Web

The World Wide Web is a very large set of interlinked hypertext documents accessed via the Internet. With a Web browser, one can view Web pages that may contain writing, s, videos, and other multimedia and navigate between them using hyperlinks....
 in a methodical, automated manner. Other terms for Web crawlers are ants, automatic indexers, bots, and worms or Web spider, Web robot, or—especially in the FOAF
FOAF (software)

FOAF is a machine-readable Ontology describing persons, their activities and their relations to other people and objects. Anyone can use FOAF to describe him or herself....
 community—Web scutter.

This process is called Web crawling or spidering. Many sites, in particular search engine
Web search engine

A Web search engine is a tool designed to search for information on the World Wide Web. The search results are usually presented in a list and are commonly called hits....
s, use spidering as a means of providing up-to-date data.






Discussion
Ask a question about 'Web crawler'
Start a new discussion about 'Web crawler'
Answer questions from other users
Full Discussion Forum



Encyclopedia


A Web crawler is a computer program that browses the World Wide Web
World Wide Web

The World Wide Web is a very large set of interlinked hypertext documents accessed via the Internet. With a Web browser, one can view Web pages that may contain writing, s, videos, and other multimedia and navigate between them using hyperlinks....
 in a methodical, automated manner. Other terms for Web crawlers are ants, automatic indexers, bots, and worms or Web spider, Web robot, or—especially in the FOAF
FOAF (software)

FOAF is a machine-readable Ontology describing persons, their activities and their relations to other people and objects. Anyone can use FOAF to describe him or herself....
 community—Web scutter.

This process is called Web crawling or spidering. Many sites, in particular search engine
Web search engine

A Web search engine is a tool designed to search for information on the World Wide Web. The search results are usually presented in a list and are commonly called hits....
s, use spidering as a means of providing up-to-date data. Web crawlers are mainly used to create a copy of all the visited pages for later processing by a search engine that will index
Index (search engine)

Search engine index collects, parses, and stores data to facilitate fast and accurate information retrieval. Index design incorporates interdisciplinary concepts from linguistics, cognitive psychology, mathematics, informatics, physics and computer science....
 the downloaded pages to provide fast searches. Crawlers can also be used for automating maintenance tasks on a Web site, such as checking links or validating HTML
HTML

HTML, an Acronym and initialism of HyperText Markup Language, is the predominant markup language for Web pages. It provides a means to describe the structure of text-based information in a document?by denoting certain text as links, headings, paragraphs, lists, and so on?and to supplement that text with interactive forms, embedded '...
 code. Also, crawlers can be used to gather specific types of information from Web pages, such as harvesting e-mail addresses (usually for spam).

A Web crawler is one type of bot
Internet bot

Internet bots, also known as web robots, WWW robots or simply bots, are software applications that run automated tasks over the Internet....
, or software agent. In general, it starts with a list of URL
Uniform Resource Locator

In Information technology, a Uniform Resource Locator is a type of Uniform Resource Identifier that specifies where an identified resource is available and the mechanism for retrieving it....
s to visit, called the seeds. As the crawler visits these URLs, it identifies all the hyperlink
Hyperlink

In computing, a hyperlink, usually shortened to link, is a directly followable reference within a hypertext document.The area from which the hyperlink can be activated is called its anchor; its target is what the link points to, which may be another location within the same page or document, another page or document, or a...
s in the page and adds them to the list of URLs to visit, called the crawl frontier. URLs from the frontier are recursively visited according to a set of policies.

Crawling policies


There are three important characteristics of the Web that make crawling it very difficult:
  • its large volume,
  • its fast rate of change, and
  • dynamic page generation.


These characteristics combine to produce a wide variety of possible crawlable URLs.

The large volume implies that the crawler can only download a fraction of the Web pages within a given time, so it needs to prioritize its downloads. The high rate of change implies that by the time the crawler is downloading the last pages from a site, it is very likely that new pages have been added to the site, or that pages have already been updated or even deleted.

The recent increase in the number of pages being generated by server-side scripting languages has also created difficulty in that endless combinations of HTTP GET parameters exist, only a small selection of which will actually return unique content. For example, a simple online photo gallery may offer three options to users, as specified through HTTP GET parameters. If there exist four ways to sort images, three choices of thumbnail size, two file formats, and an option to disable user-provided contents, then that same set of content can be accessed with forty-eight different URLs, all of which will be present on the site. This mathematical combination creates a problem for crawlers, as they must sort through endless combinations of relatively-minor scripted changes in order to retrieve unique content.

As Edwards et al. noted, "Given that the bandwidth
Bandwidth (computing)

In computer networking and computer science, digital bandwidth, network bandwidth or just bandwidth is a measure of available or consumed data communication resources expressed in bit/s or multiples of it ....
 for conducting crawls is neither infinite nor free, it is becoming essential to crawl the Web in not only a scalable, but efficient way, if some reasonable measure of quality or freshness is to be maintained." . A crawler must carefully choose at each step which pages to visit next.

The behavior of a Web crawler is the outcome of a combination of policies:
  • a selection policy that states which pages to download,
  • a re-visit policy that states when to check for changes to the pages,
  • a politeness policy that states how to avoid overloading Web sites, and
  • a parallelization policy that states how to coordinate distributed Web crawlers.


Selection policy


Given the current size of the Web, even large search engines cover only a portion of the publicly-available Internet; a study by Lawrence and Giles
Lee Giles

Dr. C. Lee Giles is the David Reese Professor at the College of Information Sciences and Technology at the Pennsylvania State University. He is also Professor of Computer Science and Engineering, Professor of Supply Chain and Information Systems, and Director of the Intelligent Systems Research Laboratory....
 (Lawrence and Giles, 2000) showed that no search engine indexes more than 16% of the Web. As a crawler always downloads just a fraction of the Web pages, it is highly desirable that the downloaded fraction contains the most relevant pages and not just a random sample of the Web.

This requires a metric of importance for prioritizing Web pages. The importance of a page is a function of its intrinsic quality, its popularity in terms of links or visits, and even of its URL (the latter is the case of vertical search engine
Vertical search

Vertical search, or domain-specific search, part of a larger sub-grouping known as "specialized" search, is a relatively new tier in the Internet search, industry consisting of search engines that focus on specific slices of content....
s restricted to a single top-level domain, or search engines restricted to a fixed Web site). Designing a good selection policy has an added difficulty: it must work with partial information, as the complete set of Web pages is not known during crawling.

Cho et al. (Cho et al., 1998) made the first study on policies for crawling scheduling. Their data set was a 180,000-pages crawl from the stanford.edu domain, in which a crawling simulation was done with different strategies. The ordering metrics tested were breadth-first
Breadth-first search

In graph theory, breadth-first search is a graph search algorithm that begins at the root node and explores all the neighboring nodes. Then for each of those nearest nodes, it explores their unexplored neighbor nodes, and so on, until it finds the goal....
, backlink
Backlink

Backlinks are incoming hyperlink to a website or web page. In the search engine optimization world, the number of backlinks is one indication of the popularity or importance of that website or page ....
-count and partial Pagerank
PageRank

PageRank is a Network theory#link analysis algorithm used by the Google Internet search engine that assigns a numerical weighting to each element of a hyperlinked set of documents, such as the World Wide Web, with the purpose of "measuring" its relative importance within the set....
 calculations. One of the conclusions was that if the crawler wants to download pages with high Pagerank early during the crawling process, then the partial Pagerank strategy is the better, followed by breadth-first
Breadth-first search

In graph theory, breadth-first search is a graph search algorithm that begins at the root node and explores all the neighboring nodes. Then for each of those nearest nodes, it explores their unexplored neighbor nodes, and so on, until it finds the goal....
 and backlink-count. However, these results are for just a single domain.

Najork and Wiener performed an actual crawl on 328 million pages, using breadth-first
Breadth-first search

In graph theory, breadth-first search is a graph search algorithm that begins at the root node and explores all the neighboring nodes. Then for each of those nearest nodes, it explores their unexplored neighbor nodes, and so on, until it finds the goal....
 ordering. They found that a breadth-first
Breadth-first search

In graph theory, breadth-first search is a graph search algorithm that begins at the root node and explores all the neighboring nodes. Then for each of those nearest nodes, it explores their unexplored neighbor nodes, and so on, until it finds the goal....
 crawl captures pages with high Pagerank early in the crawl (but they did not compare this strategy against other strategies). The explanation given by the authors for this result is that "the most important pages have many links to them from numerous hosts, and those links will be found early, regardless of on which host or page the crawl originates".

Abiteboul (Abiteboul et al., 2003) designed a crawling strategy based on an algorithm called OPIC (On-line Page Importance Computation). In OPIC, each page is given an initial sum of "cash" that is distributed equally among the pages it points to. It is similar to a Pagerank computation, but it is faster and is only done in one step. An OPIC-driven crawler downloads first the pages in the crawling frontier with higher amounts of "cash". Experiments were carried in a 100,000-pages synthetic graph with a power-law distribution of in-links. However, there was no comparison with other strategies nor experiments in the real Web.

Boldi et al. (Boldi et al., 2004) used simulation on subsets of the Web of 40 million pages from the .it domain and 100 million pages from the WebBase crawl, testing breadth-first
Breadth-first search

In graph theory, breadth-first search is a graph search algorithm that begins at the root node and explores all the neighboring nodes. Then for each of those nearest nodes, it explores their unexplored neighbor nodes, and so on, until it finds the goal....
 against depth-first, random ordering and an omniscient strategy. The comparison was based on how well PageRank computed on a partial crawl approximates the true PageRank value. Surprisingly, some visits that accumulate PageRank very quickly (most notably, breadth-first
Breadth-first search

In graph theory, breadth-first search is a graph search algorithm that begins at the root node and explores all the neighboring nodes. Then for each of those nearest nodes, it explores their unexplored neighbor nodes, and so on, until it finds the goal....
 and the omniscent visit) provide very poor progressive approximations.

Baeza-Yates et al. used simulation on two subsets of the Web of 3 million pages from the .gr and .cl domain, testing several crawling strategies. They showed that both the OPIC strategy and a strategy that uses the length of the per-site queues are better than breadth-first
Breadth-first search

In graph theory, breadth-first search is a graph search algorithm that begins at the root node and explores all the neighboring nodes. Then for each of those nearest nodes, it explores their unexplored neighbor nodes, and so on, until it finds the goal....
 crawling, and that it is also very effective to use a previous crawl, when it is available, to guide the current one.

Daneshpajouh et al. designed a community based algorithm for discovering good seeds. Their method crawls web pages with high PageRank from different communities in less iteration in comparison with crawl starting from random seeds. One can extract good seed from a previously-crawled-Web graph using this new method. Using these seeds a new crawl can be very effective.

Restricting followed links
A crawler may only want to seek out HTML pages and avoid all other MIME types. In order to request only HTML resources, a crawler may make an HTTP HEAD request to determine a Web resource's MIME type before requesting the entire resource with a GET request. To avoid making numerous HEAD requests, a crawler may alternatively examine the URL and only request the resource if the URL ends with .html, .htm or a slash. This strategy may cause numerous HTML Web resources to be unintentionally skipped. A similar strategy compares the extension of the Web resource to a list of known HTML-page types: .html, .htm, .asp, .aspx, .php, and a slash.

Some crawlers may also avoid requesting any resources that have a "?"
Query string

In World Wide Web, a query string is the part of a Uniform Resource Locator that contains data to be passed to web applications such as Common Gateway Interface programs....
 in them (are dynamically produced) in order to avoid spider trap
Spider Trap

A spider trap is a set of web pages that may intentionally or unintentionally be used to cause a web crawler or search bot to make an infinite number of requests or cause a poorly constructed crawler to crash....
s that may cause the crawler to download an infinite number of URLs from a Web site.

Path-ascending crawling
Some crawlers intend to download as many resources as possible from a particular Web site. Cothey (Cothey, 2004) introduced a path-ascending crawler that would ascend to every path in each URL that it intends to crawl. For example, when given a seed URL of http://llama.org/hamster/monkey/page.html, it will attempt to crawl /hamster/monkey/, /hamster/, and /. Cothey found that a path-ascending crawler was very effective in finding isolated resources, or resources for which no inbound link would have been found in regular crawling.

Many Path-ascending crawlers are also known as Harvester
Harvester

Harvester can refer to:* Bioinformatic Harvester, Bioinformatic metasearch engine at Karlsruhe Institute of Technology* Combine harvester, a machine used to harvest grain...
 software, because they're used to "harvest" or collect all the content — perhaps the collection of photos in a gallery — from a specific page or host.

Focused crawling
The importance of a page for a crawler can also be expressed as a function of the similarity of a page to a given query. Web crawlers that attempt to download pages that are similar to each other are called focused crawler or topical crawlers. The concepts of topical and focused crawling were first introduced by Menczer and by Chakrabarti et al. .

The main problem in focused crawling is that in the context of a Web crawler, we would like to be able to predict the similarity of the text of a given page to the query before actually downloading the page. A possible predictor is the anchor text of links; this was the approach taken by Pinkerton in a crawler developed in the early days of the Web. Diligenti et al. propose to use the complete content of the pages already visited to infer the similarity between the driving query and the pages that have not been visited yet. The performance of a focused crawling depends mostly on the richness of links in the specific topic being searched, and a focused crawling usually relies on a general Web search engine for providing starting points.

Crawling the Deep Web
A vast amount of Web pages lie in the deep
Deep web

The deep Web refers to World Wide Web content that is not part of the surface Web, which is index by standard search engines.Mike Bergman, credited with coining the phrase, has said that searching on the Internet today can be compared to dragging a net across the surface of the ocean; a great deal may be caught in the net, but there is a...
 or invisible Web. These pages are typically only accessible by submitting queries to a database, and regular crawlers are unable to find these pages if there are no links that point to them. Google’s Sitemap Protocol and mod oai
Mod oai

mod_oai is an Apache HTTP Server that allows web crawlers to efficiently discover new, modified, and deleted web resources from a web server by using OAI-PMH, a protocol which is widely used in the digital library community....
 (Nelson et al., 2005) are intended to allow discovery of these deep-Web resources.

Deep Web crawling also multiplies the number of Web links to be crawled. Some crawlers only take some of the Googlebot
Googlebot

Googlebot is the search bot software used by Google, which collects documents from the World Wide Web to build a searchable index for the Google search engine....
, Web crawling is done on contained inside the hypertext content, tags, or text.

Re-visit policy


The Web has a very dynamic nature, and crawling a fraction of the Web can take a really long time, usually measured in weeks or months. By the time a Web crawler has finished its crawl, many events could have happened. These events can include creations, updates and deletions.

From the search engine's point of view, there is a cost associated with not detecting an event, and thus having an outdated copy of a resource. The most-used cost functions, introduced in (Cho and Garcia-Molina, 2000), are freshness and age.

Freshness: This is a binary measure that indicates whether the local copy is accurate or not. The freshness of a page p in the repository at time t is defined as:



Age: This is a measure that indicates how outdated the local copy is. The age of a page p in the repository, at time t is defined as:



Coffman et al. (Edward G. Coffman, 1998) worked with a definition of the objective of a Web crawler that is equivalent to freshness, but use a different wording: they propose that a crawler must minimize the fraction of time pages remain outdated. They also noted that the problem of Web crawling can be modeled as a multiple-queue, single-server polling system, on which the Web crawler is the server and the Web sites are the queues. Page modifications are the arrival of the customers, and switch-over times are the interval between page accesses to a single Web site. Under this model, mean waiting time for a customer in the polling system is equivalent to the average age for the Web crawler.

The objective of the crawler is to keep the average freshness of pages in its collection as high as possible, or to keep the average age of pages as low as possible. These objectives are not equivalent: in the first case, the crawler is just concerned with how many pages are out-dated, while in the second case, the crawler is concerned with how old the local copies of pages are.

Two simple re-visiting policies were studied by Cho and Garcia-Molina :

Uniform policy: This involves re-visiting all pages in the collection with the same frequency, regardless of their rates of change.

Proportional policy: This involves re-visiting more often the pages that change more frequently. The visiting frequency is directly proportional to the (estimated) change frequency.

(In both cases, the repeated crawling order of pages can be done either in a random or a fixed order.)

Cho and Garcia-Molina proved the surprising result that, in terms of average freshness, the uniform policy outperforms the proportional policy in both a simulated Web and a real Web crawl. The explanation for this result comes from the fact that, when a page changes too often, the crawler will waste time by trying to re-crawl it too fast and still will not be able to keep its copy of the page fresh.

To improve freshness, we should penalize the elements that change too often (Cho and Garcia-Molina, 2003a). The optimal re-visiting policy is neither the uniform policy nor the proportional policy. The optimal method for keeping average freshness high includes ignoring the pages that change too often, and the optimal for keeping average age low is to use access frequencies that monotonically (and sub-linearly) increase with the rate of change of each page. In both cases, the optimal is closer to the uniform policy than to the proportional policy: as Coffman et al. (Edward G. Coffman, 1998) note, "in order to minimize the expected obsolescence time, the accesses to any particular page should be kept as evenly spaced as possible". Explicit formulas for the re-visit policy are not attainable in general, but they are obtained numerically, as they depend on the distribution of page changes. (Cho and Garcia-Molina, 2003a) show that the exponential distribution is a good fit for describing page changes, while Ipeirotis et al. show how to use statistical tools to discover parameters that affect this distribution. Note that the re-visiting policies considered here regard all pages as homogeneous in terms of quality ("all pages on the Web are worth the same"), something that is not a realistic scenario, so further information about the Web page quality should be included to achieve a better crawling policy.

Politeness policy


Crawlers can retrieve data much quicker and in greater depth than human searchers, so they can have a crippling impact on the performance of a site. Needless to say, if a single crawler is performing multiple requests per second and/or downloading large files, a server would have a hard time keeping up with requests from multiple crawlers.

As noted by Koster , the use of Web crawlers is useful for a number of tasks, but comes with a price for the general community. The costs of using Web crawlers include:
  • network resources, as crawlers require considerable bandwidth and operate with a high degree of parallelism during a long period of time;
  • server overload, especially if the frequency of accesses to a given server is too high;
  • poorly-written crawlers, which can crash servers or routers, or which download pages they cannot handle; and
  • personal crawlers that, if deployed by too many users, can disrupt networks and Web servers.


A partial solution to these problems is the robots exclusion protocol
Robots Exclusion Standard

The robot exclusion standard, also known as the Robots Exclusion Protocol or robots.txt protocol, is a convention to prevent cooperating web spiders and other web robots from accessing all or part of a website which is otherwise publicly viewable....
, also known as the robots.txt protocol that is a standard for administrators to indicate which parts of their Web servers should not be accessed by crawlers. This standard does not include a suggestion for the interval of visits to the same server, even though this interval is the most effective way of avoiding server overload. Recently commercial search engines like Ask Jeeves, MSN
MSN

MSN is a collection of Internet services provided by Microsoft. The Microsoft Network debuted as an online service and Internet service provider on August 24, 1995, to coincide with the release of the Windows 95 operating system....
 and Yahoo
Yahoo!

Yahoo! Inc. is an United States public company corporation with headquarters in Sunnyvale, California, , and provides Internet services worldwide....
 are able to use an extra "Crawl-delay:" parameter in the robots.txt file to indicate the number of seconds to delay between requests.

The first proposal for the interval between connections was given in and was 60 seconds. However, if pages were downloaded at this rate from a website with more than 100,000 pages over a perfect connection with zero latency and infinite bandwidth, it would take more than 2 months to download only that entire Web site; also, only a fraction of the resources from that Web server would be used. This does not seem acceptable.

Cho uses 10 seconds as an interval for accesses, and the WIRE crawler uses 15 seconds as the default. The MercatorWeb crawler (Heydon and Najork, 1999) follows an adaptive politeness policy: if it took t seconds to download a document from a given server, the crawler waits for 10t seconds before downloading the next page. Dill et al. use 1 second.

For those using Web crawlers for research purposes, a more detailed cost-benefit analysis is needed and ethical considerations should be taken into account when deciding where to crawl and how fast to crawl .

Anecdotal evidence from access logs shows that access intervals from known crawlers vary between 20 seconds and 3–4 minutes. It is worth noticing that even when being very polite, and taking all the safeguards to avoid overloading Web servers, some complaints from Web server administrators are received. Brin
Sergey Brin

Sergey Brin is co-founder of Google, Inc., the world?s largest internet company, based on its search engine and online advertising technology. He is ranked by Forbes as the 32nd richest person in the world....
 and Page
Larry Page

Larry Page, is an American computer scientist and co-founder of Google, Inc., the world?s largest internet company, based on its search engine and online advertising technology....
 note that: "... running a crawler which connects to more than half a million servers (...) generates a fair amount of e-mail and phone calls. Because of the vast number of people coming on line, there are always those who do not know what a crawler is, because this is the first one they have seen." .

Parallelization policy


A parallel
Parallel computing

Parallel computing is a form of computing in which many calculations are carried out simultaneously, operating on the principle that large problems can often be divided into smaller ones, which are then solved Concurrency ....
 crawler is a crawler that runs multiple processes in parallel. The goal is to maximize the download rate while minimizing the overhead from parallelization and to avoid repeated downloads of the same page. To avoid downloading the same page more than once, the crawling system requires a policy for assigning the new URLs discovered during the crawling process, as the same URL can be found by two different crawling processes.

Web crawler architectures

A crawler must not only have a good crawling strategy, as noted in the previous sections, but it should also have a highly optimized architecture.

Shkapenyuk and Suel noted that: "While it is fairly easy to build a slow crawler that downloads a few pages per second for a short period of time, building a high-performance system that can download hundreds of millions of pages over several weeks presents a number of challenges in system design, I/O and network efficiency, and robustness and manageability."

Web crawlers are a central part of search engines, and details on their algorithms and architecture are kept as business secrets. When crawler designs are published, there is often an important lack of detail that prevents others from reproducing the work. There are also emerging concerns about "search engine spamming
Spamdexing

Spamdexing involves a number of methods, such as repeating unrelated phrases, to manipulate the relevancy or prominence of resources indexed by a Web search engine, in a manner inconsistent with the purpose of the indexing system....
", which prevent major search engines from publishing their ranking algorithms.


URL normalization


Crawlers usually perform some type of URL normalization
URL normalization

URL normalization is the process by which Uniform Resource Locator are modified and standardized in a consistent manner. The goal of the normalization process is to transform a URL into a normalized or canonical URL so it is possible to determine if two syntactically different URLs are equivalent....
 in order to avoid crawling the same resource more than once. The term URL normalization, also called URL canonicalization, refers to the process of modifying and standardizing a URL in a consistent manner. There are several types of normalization that may be performed including conversion of URLs to lowercase, removal of "." and ".." segments, and adding trailing slashes to the non-empty path component (Pant et al., 2004).

Crawler identification


Web crawlers typically identify themselves to a Web server by using the User-agent
User agent

A user agent is the client application used with a particular network protocol; the phrase is most commonly used in reference to those which access the World Wide Web, but other systems such as Session Initiation Protocol use the term user agent to refer to the user's phone....
 field of an HTTP request. Web site administrators typically examine their Web server
Web server

The term web server can mean one of two things:# A computer program that is responsible for accepting Hypertext Transfer Protocol requests from clients , and Server them HTTP responses along with optional data contents, which usually are web pages such as Hypertext Markup Language documents and linked objects ....
s’ log and use the user agent field to determine which crawlers have visited the web server and how often. The user agent field may include a URL
Uniform Resource Locator

In Information technology, a Uniform Resource Locator is a type of Uniform Resource Identifier that specifies where an identified resource is available and the mechanism for retrieving it....
 where the Web site administrator may find out more information about the crawler. Spambots and other malicious Web crawlers are unlikely to place identifying information in the user agent field, or they may mask their identity as a browser or other well-known crawler.

It is important for Web crawlers to identify themselves so that Web site administrators can contact the owner if needed. In some cases, crawlers may be accidentally trapped in a crawler trap
Spider Trap

A spider trap is a set of web pages that may intentionally or unintentionally be used to cause a web crawler or search bot to make an infinite number of requests or cause a poorly constructed crawler to crash....
 or they may be overloading a Web server with requests, and the owner needs to stop the crawler. Identification is also useful for administrators that are interested in knowing when they may expect their Web pages to be indexed by a particular search engine
Web search engine

A Web search engine is a tool designed to search for information on the World Wide Web. The search results are usually presented in a list and are commonly called hits....
.

Examples of Web crawlers

The following is a list of published crawler architectures for general-purpose crawlers (excluding focused web crawlers), with a brief description that includes the names given to the different components and outstanding features:

  • FAST Crawler is a distributed crawler, used by Fast Search & Transfer
    Fast Search & Transfer

    Fast Search & Transfer ASA is a Norway company based in Oslo. FAST focuses on search engine. It also has offices located in Germany, Italy, Sri Lanka, France, Japan, the United Kingdom, the United States, Brazil, Mexico and other countries around the world....
    , and a general description of its architecture is available.
  • Google
    Google

    Google Inc. is an United States public company, earning revenue from AdWords related to its Google search, Gmail, Google Maps, Google Apps, Orkut, and YouTube services as well as selling advertising-free versions of the Google Search Appliance....
     Crawler
    is described in some detail, but the reference is only about an early version of its architecture, which was based in C++ and Python
    Python (programming language)

    Python is a general-purpose high-level programming language. Its design philosophy emphasizes code readability. Python's core syntax and semantics are Minimalism , while the standard library is large and comprehensive....
    . The crawler was integrated with the indexing process, because text parsing was done for full-text indexing and also for URL extraction. There is a URL server that sends lists of URLs to be fetched by several crawling processes. During parsing, the URLs found were passed to a URL server that checked if the URL have been previously seen. If not, the URL was added to the queue of the URL server.
  • Methabot
    Methabot

    Methabot is a scriptable web crawler designed for flexibility and speed. It is free software written in C , distributed under the terms of the ISC licence....
     is a scriptable web crawler written in C, released under the ISC license.
  • PolyBot is a distributed crawler written in C++ and Python, which is composed of a "crawl manager", one or more "downloaders" and one or more "DNS resolvers". Collected URLs are added to a queue on disk, and processed later to search for seen URLs in batch mode. The politeness policy considers both third and second level domains (e.g.: www.example.com and www2.example.com are third level domains) because third level domains are usually hosted by the same Web server.
  • RBSE was the first published web crawler. It was based on two programs: the first program, "spider" maintains a queue in a relational database, and the second program "mite", is a modified www ASCII
    ASCII

    American Standard Code for Information Interchange , is a coding standard that can be used for interchanging information, if the information is expressed mainly by the written form of English words....
     browser that downloads the pages from the Web.
  • WebCrawler was used to build the first publicly-available full-text index of a subset of the Web. It was based on lib-WWW to download pages, and another program to parse and order URLs for breadth-first exploration of the Web graph. It also included a real-time crawler that followed links based on the similarity of the anchor text with the provided query.
  • World Wide Web Worm was a crawler used to build a simple index of document titles and URLs. The index could be searched by using the grep
    Grep

    grep is a command line interface text search utility originally written for Unix. The name is taken from the first letters in global / regular expression / print, a series of instructions for the ed text editor....
    Unix
    Unix

    Unix is a computer operating system originally developed in 1969 by a group of American Telephone & Telegraph employees at Bell Labs, including Ken Thompson , Dennis Ritchie, Douglas McIlroy, and Joe Ossanna....
     command.
  • WebFountain
    WebFountain

    WebFountain is an Internet analytics engine implemented by IBM for the study of unstructured data on the World Wide Web. IBM describes WebFountain as:...
      is a distributed, modular crawler similar to Mercator but written in C++. It features a "controller" machine that coordinates a series of "ant" machines. After repeatedly downloading pages, a change rate is inferred for each page and a non-linear programming method must be used to solve the equation system for maximizing freshness. The authors recommend to use this crawling order in the early stages of the crawl, and then switch to a uniform crawling order, in which all pages are being visited with the same frequency.
  • WebRACE is a crawling and caching module implemented in Java, and used as a part of a more generic system called eRACE. The system receives requests from users for downloading web pages, so the crawler acts in part as a smart proxy server. The system also handles requests for "subscriptions" to Web pages that must be monitored: when the pages change, they must be downloaded by the crawler and the subscriber must be notified. The most outstanding feature of WebRACE is that, while most crawlers start with a set of "seed" URLs, WebRACE is continuously receiving new starting URLs to crawl from.


In addition to the specific crawler architectures listed above, there are general crawler architectures published by Cho (Cho and Garcia-Molina, 2002) and Chakrabarti .

Open-source crawlers

  • arachnode.net
    Arachnode.net

    arachnode.net is a .NET_Framework web crawler written in C_Sharp_ using SQL 2005 and Lucene and is released under the GNU General Public License....
     is a .NET
    .NET Framework

    The Microsoft .NET Framework is a software framework that is available with several Microsoft Windows operating systems. It includes a large Library of coded solutions to prevent common programming problems and a virtual machine that manages the execution of programs written specifically for the Software framework....
     web crawler written in C# using SQL 2005 and Lucene
    Lucene

    Lucene is a free software/open source software information retrieval Library , originally created in Java by Doug Cutting. It is supported by the Apache Software Foundation and is released under the Apache Software License....
     and is released under the GNU General Public License
    GNU General Public License

    The GNU General Public License is a widely used free software license, originally written by Richard Stallman for the GNU project. The GPL is the most popular and well-known example of the type of strong copyleft license that requires derived works to be available under the same copyleft....
    .
  • DataparkSearch
    DataparkSearch

    DataparkSearch is a search engine designed to organize search within a website, group of websites, intranet or local system.DataparkSearch is written in C ....
     is a crawler and search engine released under the GNU General Public License
    GNU General Public License

    The GNU General Public License is a widely used free software license, originally written by Richard Stallman for the GNU project. The GPL is the most popular and well-known example of the type of strong copyleft license that requires derived works to be available under the same copyleft....
    .
  • GNU Wget
    Wget

    GNU Wget is a simple computer program that retrieves content from web servers, and is part of the GNU Project. Its name is derived from World Wide Web and get, connotative of its primary function....
     is a command-line
    Command line interface

    A command-line interface is a mechanism for interacting with a computer operating system or software by typing commands to perform specific tasks....
    -operated crawler written in C
    C (programming language)

    C is a general-purpose computer programming language originally developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories to implement the Unix operating system....
     and released under the GPL
    GNU General Public License

    The GNU General Public License is a widely used free software license, originally written by Richard Stallman for the GNU project. The GPL is the most popular and well-known example of the type of strong copyleft license that requires derived works to be available under the same copyleft....
    . It is typically used to mirror Web and FTP sites.
  • GRUB
    Grub (search engine)

    Grub is an Open source software Distributed web crawling crawler platform. On July 27, 2007 Jimmy Wales announced that Wikia, Inc., the for-profit company developing the open source search engine Wikia Search, had acquired Grub from LookSmart....
     is an open source distributed search crawler that Wikia Search ( http://wikiasearch.com ) uses to crawl the web.
  • Heritrix
    Heritrix

    Heritrix is the Internet Archive?s web crawler which was specially designed for web archiving. It is open-source and written in Java . The main interface is accessible using a web browser, and there is a command-line tool that can optionally be used to initiate crawls....
     is the Internet Archive
    Internet Archive

    The Internet Archive is a nonprofit organization dedicated to building and maintaining a free and openly accessible online digital library, including an archive site of the World Wide Web....
    's archival-quality crawler, designed for archiving periodic snapshots of a large portion of the Web. It was written in Java
    Java (programming language)

    Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java ....
    .
  • ht://Dig
    Ht-//dig

    ht://Dig is a free software index and search engine system created in 1995 by Andrew Scherpbier while he was employed at San Diego State University....
     includes a Web crawler in its indexing engine.
  • HTTrack
    HTTrack

    HTTrack is a free software and open source Web crawler and offline browser, developed by Xavier Roche and licensed under the GNU General Public License....
     uses a Web crawler to create a mirror of a web site for off-line viewing. It is written in C
    C (programming language)

    C is a general-purpose computer programming language originally developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories to implement the Unix operating system....
     and released under the GPL
    GNU General Public License

    The GNU General Public License is a widely used free software license, originally written by Richard Stallman for the GNU project. The GPL is the most popular and well-known example of the type of strong copyleft license that requires derived works to be available under the same copyleft....
    .
  • ICDL Crawler
    ICDL crawling

    ICDL crawling is an open distributed web crawling technology based on Website Parse Template ....
     is a cross-platform
    Cross-platform

    In computing, cross-platform is a term used to refer to computer software or computing methods and concepts that are implemented and inter-operate on multiple computer platforms....
     web crawler written in C++
    C++

    C++ is a general-purpose programming language. It is regarded as a middle-level language, as it comprises a combination of both high-level programming language and low-level programming language language features....
     and intended to crawl Web sites based on Web-site Parse Template
    Website Parse Template

    Website Parse Template is an XML based open format which provides HTML structure description of website pages. WPT format allows web crawlers to generate Semantic Web Resource Description Framework for web pages....
    s using computer's free CPU resources only.
  • Nutch
    Nutch

    Nutch is an effort to build an open source search engine based on Lucene for the search and index component....
     is a crawler written in Java and released under an Apache License
    Apache License

    The Apache License is a free-software license authored by the Apache Software Foundation . The Apache License requires preservation of the copyright notice and disclaimer, but it is not a copyleft license — it allows use of the source code for the development of free software and open source software as well as proprietary software....
    . It can be used in conjunction with the Lucene
    Lucene

    Lucene is a free software/open source software information retrieval Library , originally created in Java by Doug Cutting. It is supported by the Apache Software Foundation and is released under the Apache Software License....
     text-indexing package.
  • Pavuk
    Pavuk

    A GPL opensource web mirror software, with both command line and X Window GUI. Win32 ports are also available. The most significant feature compared to similar software wget and httrack are advanced regular expression based filtering capabilities, filename creation rules, filtering based on HTML tag patterns....
     is a command-line Web mirror tool with optional X11 GUI crawler and released under the GPL
    GNU General Public License

    The GNU General Public License is a widely used free software license, originally written by Richard Stallman for the GNU project. The GPL is the most popular and well-known example of the type of strong copyleft license that requires derived works to be available under the same copyleft....
    . It has bunch of advanced features compared to wget and httrack, e.g., regular expression based filtering and file creation rules.
  • YaCy
    YaCy

    YaCy is a free software distributed search engine, built on principles of peer-to-peer networks. Its core is a computer program written in Java distributed on several hundred computers, , so-called YaCy-peers....
    , a free distributed search engine, built on principles of peer-to-peer networks (licensed under GPL
    GNU General Public License

    The GNU General Public License is a widely used free software license, originally written by Richard Stallman for the GNU project. The GPL is the most popular and well-known example of the type of strong copyleft license that requires derived works to be available under the same copyleft....
    ).


See also


  • Distributed web crawling
    Distributed web crawling

    Distributed web crawling is a distributed computing technique whereby Internet search engines employ many computers to index the Internet via web crawler....
  • Focused crawler
    Focused crawler

    A focused crawler or topical crawler is a web crawler that attempts to download only web pages that are relevant to a pre-defined topic or set of topics....
  • Search Engine Indexing - the step after crawling
  • Spambot
    Spambot

    A spambot is an automated computer program designed to assist in the sending of Spam ....
  • Spider trap
    Spider Trap

    A spider trap is a set of web pages that may intentionally or unintentionally be used to cause a web crawler or search bot to make an infinite number of requests or cause a poorly constructed crawler to crash....
  • Spidering Hacks
    Spidering Hacks

    Spidering Hacks: 100 Industrial-Strength Tips and Tools is a book of tips about spidering software, software which traverses data on the internet cataloging the information it finds....
     - an O'Reilly book focused on spider-like programming
  • Web archiving
    Web archiving

    Web archiving is the process of collecting portions of the World Wide Web and ensuring the collection is digital preservation in an archive, such as an archive site, for future researchers, historians, and the public....
  • Website Parse Template
    Website Parse Template

    Website Parse Template is an XML based open format which provides HTML structure description of website pages. WPT format allows web crawlers to generate Semantic Web Resource Description Framework for web pages....