Mon . 20 Jun 2020
TR | RU | UK | KK | BE |

Web crawler

webcrawler.com, webcrawler.com search engine
A Web crawler is an Internet bot which systematically browses the World Wide Web, typically for the purpose of Web indexing web spidering

Web search engines and some other sites use Web crawling or spidering software to update their web content or indices of others sites' web content Web crawlers can copy all the pages they visit for later processing by a search engine which indexes the downloaded pages so the users can search much more efficiently

Crawlers consume resources on the systems they visit and often visit sites without tacit approval Issues of schedule, load, and "politeness" come into play when large collections of pages are accessed Mechanisms exist for public sites not wishing to be crawled to make this known to the crawling agent For instance, including a robotstxt file can request bots to index only parts of a website, or nothing at all

As the number of pages on the internet is extremely large, even the largest crawlers fall short of making a complete index For that reason search engines were bad at giving relevant search results in the early years of the World Wide Web, before the year 2000 This is improved greatly by modern search engines, nowadays very good results are given instantly

Crawlers can validate hyperlinks and HTML code They can also be used for web scraping see also data-driven programming

Contents

  • 1 Nomenclature
  • 2 Overview
  • 3 Crawling policy
    • 31 Selection policy
      • 311 Restricting followed links
      • 312 URL normalization
      • 313 Path-ascending crawling
      • 314 Focused crawling
        • 3141 Academic-focused crawler
    • 32 Re-visit policy
    • 33 Politeness policy
    • 34 Parallelization policy
  • 4 Architectures
  • 5 Security
  • 6 Crawler identification
  • 7 Crawling the deep web
    • 71 Web crawler bias
  • 8 Visual vs programmatic crawlers
  • 9 Examples
    • 91 Open-source crawlers
  • 10 See also
  • 11 References
  • 12 Further reading

Nomenclature

A Web crawler may also be called a Web spider, an ant, an automatic indexer, or in the FOAF software context a Web scutter

Overview

A Web crawler starts with a list of URLs to visit, called the seeds As the crawler visits these URLs, it identifies all the hyperlinks 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 If the crawler is performing archiving of websites it copies and saves the information as it goes The archives are usually stored in such a way they can be viewed, read and navigated as they were on the live web, but are preserved as ‘snapshots'

The large volume implies the crawler can only download a limited number of the Web pages within a given time, so it needs to prioritize its downloads The high rate of change can imply the pages might have already been updated or even deleted

The number of possible URLs crawled being generated by server-side software has also made it difficult for web crawlers to avoid retrieving duplicate content Endless combinations of HTTP GET URL-based parameters exist, of which only a small selection will actually return unique content For example, a simple online photo gallery may offer three options to users, as specified through HTTP GET parameters in the URL If there exist four ways to sort images, three choices of thumbnail size, two file formats, and an option to disable user-provided content, then the same set of content can be accessed with 48 different URLs, all of which may be linked 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 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

Crawling policy

The behavior of a Web crawler is the outcome of a combination of policies:

  • a selection policy which states the pages to download,
  • a re-visit policy which 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 part A 2009 study showed even large-scale search engines index no more than 40-70% of the indexable Web; a previous study by Steve Lawrence and Lee Giles showed that no search engine indexed more than 16% of the Web in 1999 As a crawler always downloads just a fraction of the Web pages, it is highly desirable for the downloaded fraction to contain 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 engines 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 made the first study on policies for crawling scheduling Their data set was a 180,000-pages crawl from the stanfordedu domain, in which a crawling simulation was done with different strategies The ordering metrics tested were breadth-first, backlink count and partial Pagerank 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 and backlink-count However, these results are for just a single domain Cho also wrote his PhD dissertation at Stanford on web crawling

Najork and Wiener performed an actual crawl on 328 million pages, using breadth-first ordering They found that a breadth-first 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 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 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 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 and the omniscient 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 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 examine the URL and only request a resource if the URL ends with certain characters such as html, htm, asp, aspx, php, jsp, jspx or a slash This strategy may cause numerous HTML Web resources to be unintentionally skipped

Some crawlers may also avoid requesting any resources that have a "" in them are dynamically produced in order to avoid spider traps that may cause the crawler to download an infinite number of URLs from a Web site This strategy is unreliable if the site uses URL rewriting to simplify its URLs

URL normalization

Main article: URL normalization

Crawlers usually perform some type of URL normalization 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

Path-ascending crawling

Some crawlers intend to download as many resources as possible from a particular web site So path-ascending crawler was introduced that would ascend to every path in each URL that it intends to crawl For example, when given a seed URL of http://llamaorg/hamster/monkey/pagehtml, 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

Focused crawling

Main article: Focused crawler

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 Filippo Menczer and by Soumen 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 the first web crawler of the early days of the Web Diligenti et al propose using 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

Academic-focused crawler

An example of the focused crawlers are academic crawlers, which crawls free-access academic related documents, such as the citeseerxbot, which is the crawler of CiteSeerX search engine Other academic search engines are Google Scholar and Microsoft Academic Search etc Because most academic papers are published in PDF formats, such kind of crawler is particularly interested in crawling PDF, PostScript files, Microsoft Word including their zipped formats Because of this, general open source crawlers, such as Heritrix, must be customized to filter out other MIME types, or a middleware is used to extract these documents out and import them to the focused crawl database and repository Identifying whether these documents are academic or not is challenging and can add a significant overhead to the crawling process, so this is performed as a post crawling process using machine learning or regular expression algorithms These academic documents are usually obtained from home pages of faculties and students or from publication page of research institutes Because academic documents takes only a small fraction in the entire web pages, a good seed selection are important in boosting the efficiencies of these web crawlers Other academic crawlers may download plain text and HTML files, that contains metadata of academic papers, such as titles, papers, and abstracts This increases the overall number of papers, but a significant fraction may not provide free PDF downloads

Re-visit policy

The Web has a very dynamic nature, and crawling a fraction of the Web can take weeks or months By the time a Web crawler has finished its crawl, many events could have happened, including 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 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:

F p t = t=1&~p~~t\\0&\end

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:

A p t = t=0&~p~~t\\t-~p&\end

Coffman et al 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

Evolution of Freshness and Age in a web crawler

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 Intuitively, the reasoning is that, as web crawlers have a limit to how many pages they can crawl in a given time frame, 1 they will allocate too many new crawls to rapidly changing pages at the expense of less frequently updating pages, and 2 the freshness of rapidly changing pages lasts for shorter period than that of less frequently changing pages In other words, a proportional policy allocates more resources to crawling frequently updating pages, but experiences less overall freshness time from them

To improve freshness, the crawler should penalize the elements that change too often 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 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 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, also known as the robotstxt 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 Google, Ask Jeeves, MSN and Yahoo! Search are able to use an extra "Crawl-delay:" parameter in the robotstxt file to indicate the number of seconds to delay between requests

The first proposed interval between successive pageloads 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 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 and Page 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

Main article: Distributed web crawling

A parallel 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

Architectures

High-level architecture of a standard Web crawler

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", which prevent major search engines from publishing their ranking algorithms

Security

While most of the website owners are keen to have their pages indexed as broadly as possible to have strong presence in search engines, web crawling can also have unintended consequences and lead to a compromise or data breach if search engine indexes resources that shouldn't be publicly available or pages revealing potentially vulnerable versions of software In a study from 2013, majority of websites that were victims of opportunistic hacking mostly website defacements were well indexed by search engines, which was the main factor that allowed attackers to find potential victims using specific search engine queries

Main article: Google hacking

Apart from standard web application security recommendations website owners can reduce their exposure to opportunistic hacking by only allowing with robotstxt search engines to index the public parts of their websites and explicitly blocking indexing of transactional parts login pages, private pages etc

Crawler identification

Web crawlers typically identify themselves to a Web server by using the User-agent field of an HTTP request Web site administrators typically examine their Web servers' 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 where the Web site administrator may find out more information about the crawler Examining Web server log is tedious task, and therefore some administrators use tools to identify, track and verify Web crawlers 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 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

Crawling the deep web

A vast amount of web pages lie in the deep 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 Sitemaps protocol and mod oai 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 URLs in <a href="URL"> form In some cases, such as the Googlebot, Web crawling is done on all text contained inside the hypertext content, tags, or text

Strategic approaches may be taken to target deep Web content With a technique called screen scraping, specialized software may be customized to automatically and repeatedly query a given Web form with the intention of aggregating the resulting data Such software can be used to span multiple Web forms across multiple Websites Data extracted from the results of one Web form submission can be taken and applied as input to another Web form thus establishing continuity across the Deep Web in a way not possible with traditional web crawlers

Pages built on AJAX are among those causing problems to web crawlers Google has proposed a format of AJAX calls that their bot can recognize and index

Web crawler bias

A recent study based on a large scale analysis of robotstxt files showed that certain web crawlers were preferred over others, with Googlebot being the most preferred web crawler

Visual vs programmatic crawlers

There are a number of "visual web scraper/crawler" products available on the web which will crawl pages and structure data into columns and rows based on the users requirements One of the main difference between a classic and a visual crawler is the level of programming ability required to set up a crawler The latest generation of "visual scrapers" like Diffbot, outwithub, and importio remove the majority of the programming skill needed to be able to program and start a crawl to scrape web data

The visual scraping/crawling methodology relies on the user "teaching" a piece of crawler technology, which then follows patterns in semi-structured data sources The dominant method for teaching a visual crawler is by highlighting data in a browser and training columns and rows While the technology is not new, for example it was the basis of Needlebase which has been bought by Google as part of a larger acquisition of ITA Labs, there is continued growth and investment in this area by investors and end-users

Examples

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:

  • Bingbot is the name of Microsoft's Bing webcrawler It replaced Msnbot
  • FAST Crawler is a distributed crawler, used by Fast Search & Transfer, and a general description of its architecture is available
  • Googlebot is described in some detail, but the reference is only about an early version of its architecture, which was based in C++ and Python 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
  • GM Crawl is a crawler highly scalable usable in SaaS mode
  • 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 eg: wwwexamplecom and www2examplecom 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 browser that downloads the pages from the Web
  • Swiftbot is Swiftype's web crawler, designed specifically for indexing a single or small, defined group of web sites to create a highly customized search engine It enables unique features such as real-time indexing that are unavailable to other enterprise search providers
  • 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
  • WebFountain 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
  • 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 Unix command
  • Yahoo! Slurp was the name of the Yahoo! Search crawler until Yahoo! contracted with Microsoft to use Bingbot instead

In addition to the specific crawler architectures listed above, there are general crawler architectures published by Cho and Chakrabarti

Open-source crawlers

  • DataparkSearch is a crawler and search engine released under the GNU General Public License
  • GNU Wget is a command-line-operated crawler written in C and released under the GPL It is typically used to mirror Web and FTP sites
  • GRUB is an open source distributed search crawler that Wikia Search used to crawl the web
  • Heritrix is the Internet Archive's archival-quality crawler, designed for archiving periodic snapshots of a large portion of the Web It was written in Java
  • ht://Dig includes a Web crawler in its indexing engine
  • HTTrack uses a Web crawler to create a mirror of a web site for off-line viewing It is written in C and released under the GPL
  • ICDL Crawler is a cross-platform web crawler written in C++ and intended to crawl Web sites based on Website Parse Templates using computer's free CPU resources only
  • mnoGoSearch is a crawler, indexer and a search engine written in C and licensed under the GPL NIX machines only
  • Norconex HTTP Collector is a web spider, or crawler, written in Java, that aims to make Enterprise Search integrators and developers's life easier licensed under Apache License
  • Nutch is a highly extensible and scalable web crawler written in Java and released under an Apache License It is based on Apache Hadoop and can be used with Apache Solr or Elasticsearch
  • Open Search Server is a search engine and web crawler software release under the GPL
  • PHP-Crawler is a simple PHP and MySQL based crawler released under the BSD License Easy to install, it became popular for small MySQL-driven websites on shared hosting
  • Scrapy, an open source webcrawler framework, written in python licensed under BSD
  • Seeks, a free distributed search engine licensed under Affero General Public License
  • Sphinx search engine, a free search crawler, written in c++
  • StormCrawler, a collection of resources for building low-latency, scalable web crawlers on Apache Storm Apache License
  • tkWWW Robot, a crawler based on the tkWWW web browser licensed under GPL
  • Xapian, a search crawler engine, written in c++
  • YaCy, a free distributed search engine, built on principles of peer-to-peer networks licensed under GPL

See also

  • Automatic indexing
  • Gnutella crawler
  • Web archiving
  • Webgraph
  • Website mirroring software

References

  1. ^ Spetka, Scott "The TkWWW Robot: Beyond Browsing" NCSA Archived from the original on 3 September 2004 Retrieved 21 November 2010 
  2. ^ Kobayashi, M & Takeda, K 2000 "Information retrieval on the web" ACM Computing Surveys ACM Press 32 2: 144–173 doi:101145/358923358934 
  3. ^ See definition of scutter on FOAF Project's wiki
  4. ^ Masanès, Julien February 15, 2007 Web Archiving Springer p 1 ISBN 978-3-54046332-0 Retrieved April 24, 2014 
  5. ^ a b Edwards, J, McCurley, K S, and Tomlin, J A 2001 "An adaptive model for optimizing performance of an incremental web crawler" In Proceedings of the Tenth Conference on World Wide Web Hong Kong: Elsevier Science: 106–113 doi:101145/371920371960 ISBN 1581133480  CS1 maint: Multiple names: authors list link
  6. ^ Castillo, Carlos 2004 Effective Web Crawling PhD thesis University of Chile Retrieved 2010-08-03 
  7. ^ A Gulli; A Signorini 2005 "The indexable web is more than 115 billion pages" Special interest tracks and posters of the 14th international conference on World Wide Web ACM Press pp 902–903 doi:101145/10627451062789 
  8. ^ Steve Lawrence; C Lee Giles 1999-07-08 "Accessibility of information on the web" Nature 400 6740: 107–9 Bibcode:1999Natur400107L doi:101038/21987 PMID 10428673 
  9. ^ Cho, J; Garcia-Molina, H; Page, L April 1998 "Efficient Crawling Through URL Ordering" Seventh International World-Wide Web Conference Brisbane, Australia Retrieved 2009-03-23 
  10. ^ Cho, Junghoo, "Crawling the Web: Discovery and Maintenance of a Large-Scale Web Data", PhD dissertation, Department of Computer Science, Stanford University, November 2001
  11. ^ Marc Najork and Janet L Wiener Breadth-first crawling yields high-quality pages In Proceedings of the Tenth Conference on World Wide Web, pages 114–118, Hong Kong, May 2001 Elsevier Science
  12. ^ Serge Abiteboul; Mihai Preda; Gregory Cobena 2003 "Adaptive on-line page importance computation" Proceedings of the 12th international conference on World Wide Web Budapest, Hungary: ACM pp 280–290 doi:101145/775152775192 ISBN 1-58113-680-3 Retrieved 2009-03-22 
  13. ^ Paolo Boldi; Bruno Codenotti; Massimo Santini; Sebastiano Vigna 2004 "UbiCrawler: a scalable fully distributed Web crawler" PDF Software: Practice and Experience 34 8: 711–726 doi:101002/spe587 Retrieved 2009-03-23 
  14. ^ Paolo Boldi; Massimo Santini; Sebastiano Vigna 2004 "Do Your Worst to Make the Best: Paradoxical Effects in PageRank Incremental Computations" PDF Algorithms and Models for the Web-Graph pp 168–180 Retrieved 2009-03-23 
  15. ^ Baeza-Yates, R, Castillo, C, Marin, M and Rodriguez, A 2005 Crawling a Country: Better Strategies than Breadth-First for Web Page Ordering In Proceedings of the Industrial and Practical Experience track of the 14th conference on World Wide Web, pages 864–872, Chiba, Japan ACM Press
  16. ^ Shervin Daneshpajouh, Mojtaba Mohammadi Nasiri, Mohammad Ghodsi, A Fast Community Based Algorithm for Generating Crawler Seeds Set, In proceeding of 4th International Conference on Web Information Systems and Technologies Webist-2008, Funchal, Portugal, May 2008
  17. ^ Pant, Gautam; Srinivasan, Padmini; Menczer, Filippo 2004 "Crawling the Web" PDF In Levene, Mark; Poulovassilis, Alexandra Web Dynamics: Adapting to Change in Content, Size, Topology and Use Springer pp 153–178 ISBN 978-3-540-40676-1 
  18. ^ Cothey, Viv 2004 "Web-crawling reliability" Journal of the American Society for Information Science and Technology 55 14: 1228–1238 doi:101002/asi20078 
  19. ^ Menczer, F 1997 ARACHNID: Adaptive Retrieval Agents Choosing Heuristic Neighborhoods for Information Discovery In D Fisher, ed, Machine Learning: Proceedings of the 14th International Conference ICML97 Morgan Kaufmann
  20. ^ Menczer, F and Belew, RK 1998 Adaptive Information Agents in Distributed Textual Environments In K Sycara and M Wooldridge eds Proc 2nd Intl Conf on Autonomous Agents Agents '98 ACM Press
  21. ^ Chakrabarti, S, van den Berg, M, and Dom, B 1999 Focused crawling: a new approach to topic-specific web resource discovery Computer Networks, 3111–16:1623–1640
  22. ^ a b Pinkerton, B 1994 Finding what people want: Experiences with the WebCrawler In Proceedings of the First World Wide Web Conference, Geneva, Switzerland
  23. ^ Diligenti, M, Coetzee, F, Lawrence, S, Giles, C L, and Gori, M 2000 Focused crawling using context graphs In Proceedings of 26th International Conference on Very Large Databases VLDB, pages 527-534, Cairo, Egypt
  24. ^ Jian Wu, Pradeep Teregowda, Madian Khabsa, Stephen Carman, Douglas Jordan, Jose San Pedro Wandelmer, Xin Lu, Prasenjit Mitra, C Lee Giles, Web crawler middleware for search engine digital libraries: a case study for citeseerX, In proceedings of the twelfth international workshop on Web information and data management Pages 57-64, Maui Hawaii, USA, November 2012
  25. ^ Jian Wu, Pradeep Teregowda, Juan Pablo Fernández Ramírez, Prasenjit Mitra, Shuyi Zheng, C Lee Giles , The evolution of a crawling strategy for an academic document search engine: whitelists and blacklists, In proceedings of the 3rd Annual ACM Web Science Conference Pages 340-343, Evanston, IL, USA, June 2012
  26. ^ Junghoo Cho; Hector Garcia-Molina 2000 "Synchronizing a database to improve freshness" PDF Proceedings of the 2000 ACM SIGMOD international conference on Management of data Dallas, Texas, United States: ACM pp 117–128 doi:101145/342009335391 ISBN 1-58113-217-4 Retrieved 2009-03-23 
  27. ^ a b E G Coffman Jr; Zhen Liu; Richard R Weber 1998 "Optimal robot scheduling for Web search engines" Journal of Scheduling 1 1: 15–29 doi:101002/SICI1099-14251998061:1<15::AID-JOS3>30CO;2-K 
  28. ^ a b Cho, J and Garcia-Molina, H 2003 Effective page refresh policies for web crawlers ACM Transactions on Database Systems, 284
  29. ^ a b Junghoo Cho; Hector Garcia-Molina 2003 "Estimating frequency of change" ACM Trans Internet Technol 3 3: 256–290 doi:101145/857166857170 Retrieved 2009-03-22 
  30. ^ Ipeirotis, P, Ntoulas, A, Cho, J, Gravano, L 2005 Modeling and managing content changes in text databases In Proceedings of the 21st IEEE International Conference on Data Engineering, pages 606-617, April 2005, Tokyo
  31. ^ Koster, M 1995 Robots in the web: threat or treat ConneXions, 94
  32. ^ Koster, M 1996 A standard for robot exclusion
  33. ^ Koster, M 1993 Guidelines for robots writers
  34. ^ Baeza-Yates, R and Castillo, C 2002 Balancing volume, quality and freshness in Web crawling In Soft Computing Systems – Design, Management and Applications, pages 565–572, Santiago, Chile IOS Press Amsterdam
  35. ^ Heydon, Allan; Najork, Marc 1999-06-26 "Mercator: A Scalable, Extensible Web Crawler" PDF Archived from the original PDF on 19 February 2006 Retrieved 2009-03-22 
  36. ^ Dill, S, Kumar, R, Mccurley, K S, Rajagopalan, S, Sivakumar, D, and Tomkins, A 2002 Self-similarity in the web ACM Trans Inter Tech 23:205–223
  37. ^ M Thelwall; D Stuart 2006 "Web crawling ethics revisited: Cost, privacy and denial of service" Journal of the American Society for Information Science and Technology 57 13: 1771 doi:101002/asi20388 
  38. ^ a b Brin, S and Page, L 1998 The anatomy of a large-scale hypertextual Web search engine Computer Networks and ISDN Systems, 301-7:107–117
  39. ^ a b Shkapenyuk, V and Suel, T 2002 Design and implementation of a high performance distributed web crawler In Proceedings of the 18th International Conference on Data Engineering ICDE, pages 357-368, San Jose, California IEEE CS Press
  40. ^ Shestakov, Denis 2008 Search Interfaces on the Web: Querying and Characterizing TUCS Doctoral Dissertations 104, University of Turku
  41. ^ Michael L Nelson; Herbert Van de Sompel; Xiaoming Liu; Terry L Harrison; Nathan McFarland 2005-03-24 "mod_oai: An Apache Module for Metadata Harvesting" arXiv:cs/0503069 
  42. ^ Shestakov, Denis; Bhowmick, Sourav S; Lim, Ee-Peng 2005 "DEQUE: Querying the Deep Web" PDF Data & Knowledge Engineering 52 3: 273–311 
  43. ^ "AJAX crawling: Guide for webmasters and developers" Google Retrieved March 17, 2013 
  44. ^ Sun, Yang "A COMPREHENSIVE STUDY OF THE REGULATION AND BEHAVIOR OF WEB CRAWLERS" Retrieved 11 August 2014 
  45. ^ "Web Crawler" Crawlbot Retrieved 2016-02-10 
  46. ^ "OutWit Hub - Find, grab and organize all kinds of data and media from online sources" Outwitcom 2014-01-31 Retrieved 2014-03-20 
  47. ^ "Create a Crawler – importio Help Center" Supportimportio Retrieved 2014-03-20 
  48. ^ ITA Labs "ITA Labs Acquisition" April 20, 2011 1:28 AM
  49. ^ Crunchbasecom March 2014 "Crunch Base profile for importio"
  50. ^ Risvik, K M and Michelsen, R 2002 Search Engines and Web Dynamics Computer Networks, vol 39, pp 289–302, June 2002
  51. ^ GM Crawl : Identifies and collects data from the internet 2014
  52. ^ Eichmann, D 1994 The RBSE spider: balancing effective search against Web load In Proceedings of the First World Wide Web Conference, Geneva, Switzerland
  53. ^ "About Swiftbot - Swiftype" Swiftype 
  54. ^ Zeinalipour-Yazti, D and Dikaiakos, M D 2002 Design and implementation of a distributed crawler and filtering processor In Proceedings of the Fifth Next Generation Information Technologies and Systems NGITS, volume 2382 of Lecture Notes in Computer Science, pages 58–74, Caesarea, Israel Springer
  55. ^ McBryan, O A 1994 GENVL and WWWW: Tools for taming the web In Proceedings of the First World Wide Web Conference, Geneva, Switzerland
  56. ^ Junghoo Cho; Hector Garcia-Molina 2002 "Parallel crawlers" Proceedings of the 11th international conference on World Wide Web Honolulu, Hawaii, USA: ACM pp 124–135 doi:101145/511446511464 ISBN 1-58113-449-5 Retrieved 2009-03-23 
  57. ^ Chakrabarti, S 2003 Mining the Web Morgan Kaufmann Publishers ISBN 1-55860-754-4

Further reading

  • Cho, Junghoo, "Web Crawling Project", UCLA Computer Science Department
  • A History of Search Engines, from Wiley
  • A tutorial for creating basic crawlers
  • WIVET is a benchmarking project by OWASP, which aims to measure if a web crawler can identify all the hyperlinks in a target website
  • Shestakov, Denis, "Current Challenges in Web Crawling" and "Intelligent Web Crawling", slides for tutorials given at ICWE'13 and WI-IAT'13

http://www.webcrawler.com, web crawler crossword, web crawler download, web crawler program, web crawler python, web crawler software, webcrawler, webcrawler.com, webcrawler.com search engine, www.webcrawler.com


Web crawler Information about

Web crawler


  • user icon

    Web crawler beatiful post thanks!

    29.10.2014


Web crawler
Web crawler
Web crawler viewing the topic.
Web crawler what, Web crawler who, Web crawler explanation

There are excerpts from wikipedia on this article and video

Random Posts

Ralph Neville, 2nd Earl of Westmorland

Ralph Neville, 2nd Earl of Westmorland

Ralph Neville, 2nd Earl of Westmorland 4 April 1406 – 3 November 1484 was an English peer Content...
Mamprusi language

Mamprusi language

The Mamprusi language, Mampruli Mampelle, Ŋmampulli, is a Gur language spoken in northern Ghana by t...
Singapore Changi Airport

Singapore Changi Airport

Singapore Changi Airport IATA: SIN, ICAO: WSSS, or simply Changi Airport, is the primary civili...
Christian Siriano

Christian Siriano

Christian Siriano born November 18, 1985 is an American fashion designer and member of the Council o...