A crawl frontier is a data structure used for storage of URLs eligible for crawling and supporting such operations as adding URLs and selecting for crawl. Sometimes it can be seen as priority queue.
Overview
A crawl frontier is one of the components that make up the architecture of a web crawler. The crawl frontier contains the logic and policies that a crawlerfollows when visiting websites. This activity is known as . The policies can include such things as what pages should be visited next, the priorities for each page to be searched, and how often the page is to be visited. The efficiency of the crawl frontier is especially important since one of the characteristics of the Web that make web crawling a challenge; is that it contains such a large volume of data and it is constantly changing.
Architecture
The initial list of URLs contained in the crawler frontier are known as seeds. The web crawler will constantly ask the frontier what pages to visit. As the crawler visits each of those pages, it will inform the frontier with the response of each page. The crawler will also update the crawler frontier with any new hyperlinks contained in those pages it has visited. These hyperlinks are added to the frontier and will visit those new web pages based on the policies of the crawler frontier. This process continues recursively until all URLs in the crawl frontier are visited. The policies used to determine what pages to visit are commonly based on a score. This score is typically computed from a number of different attributes. Such as the freshness of a page, the time the page was updated and the relevance of the contentwith respect to certain terms.
The Frontier Manager is the component that the web crawler will use to communicate with the crawl frontier. The frontier API can also be used to communicate with the crawl frontier.
Middlewares
The frontier middlewares sit between the manager and the backend. The purpose of middlewares is to manage the communication between frontier and the backend. Middlewares are an ideal way to add or extend additional functionality simply by plugging additional code.
Backend
The backend component contains all the logic and policies that are used in a search. The function of the backend is to identify the pages to be crawled.
Known implementations
Frontera is an open source crawl frontier implementation written purely in Python.