A web crawler, spider, or search engine bot downloads and indexes content from all over the Internet. The goal of such a bot is to learn what (almost) every webpage on the web is about, so that the information can be retrieved when it’s needed. They’re called “web crawlers” because crawling is the technical term for automatically accessing a website and obtaining data via a software program.
These bots are almost always operated by search engines. By applying a search algorithm to the data collected by web crawlers, search engines can provide relevant links in response to user search queries, generating the list of webpages that show up after a user types a search into Google or Bing (or another search engine).
A web crawler bot is like someone who goes through all the books in a disorganized library and puts together a card catalog so that anyone who visits the library can quickly and easily find the information they need. To help categorize and sort the library’s books by topic, the organizer will read the title, summary, and some of the internal text of each book to figure out what it’s about.
TYPES OF WEBSPIDERS OR CRAWLERS
BIXO WEB MINING TOOLKIT
Written with Java as an open source, cross-platform website crawler released under the Apache License, the Bixo Web Mining Toolkit runs on Hadoop with a series of cascading pipes. This capability allows users to easily create a customized crawling tool optimized for your specific needs by offering the ability to assemble your pipe groupings.
The cascading operations and subassemblies can be combined, creating a workflow module for the tool to follow. Typically, this will begin with the URL set that needs to be crawled and end with a set of results that are parsed from HTML pages.
Two of the subassemblies are Fetch and Parse. The former handles the heavy lifting, sourcing URLs from the URL Datum tuple wrappers, before emitting Status Datums and Fetched Datums via two tailpipes. The latter (the Parse Subassembly) processes the content gathered, extracting data with Tika.
Their hosting site provides step by step coding instructions for setting Crawler4j up, whether you’re using Maven or not in the installation process. From there, you need to create the crawler class that differentiates between which URLs and URL types the crawler should scan. This class will also handle the downloaded page, and Crawler4j provides a quality example that includes manipulations for the shouldVisit and visit functions.
Secondly, you’ll want to add a controller class to specify the crawl’s seeding, the number of concurrent threads, and a folder for immediate scan data to be stored in. Once again, Crawler4j provides an example code.
While it does require some coding experience, by following the list of examples almost anyone can use Crawler4j.
BitAcuity was initially founded in 2000 as a technical consulting group, based in Washington DC’s metropolitan area. Using their experience in providing and operating software for both local and international clients, they released an open source, Java-based website crawler that is operational on various operating systems.
It’s a top quality, enterprise class website crawling solution designed for use as a foundation for developing your crawler program. Their aim was (and is) to save clients both time and effort in the development process, which ultimately translates to reduced costs short-term as well as long-term.
BitAcuity also hosts an open source community, allowing established users and developers to get together in customizing the core design for your specific needs and providing resources for upgrades and support. This community basis also ensures that before your website crawler becomes active, it is reviewed by peers and experts to guarantee that your customized program is on par with the best practices in use.
Another functional (albeit last updated in 2003) open source website crawling solution hosted by Source Forge, HyperSpider offers a simple yet serviceable program. Like most website crawlers, HyperSpider was written in Java and designed for use on more than one operating system. The software gathers website link structures by following existing hyperlinks, and both imports and exports data to and from the databases using CSV files. You can also opt to export your gathered information into other formats, such as Graphviz DOT, XML Topic Maps (XTM), Prolog, HTML, and Resource Description Framework (RDF and (or) DC).
Data is formulated into a visualized hierarchy and map, using minimal click paths to define its form out of the collection of website pages—something which, at the time at least, was a cutting-edge solution. It’s a pity that the project was never continued, as the innovation of HyperSpider’s initial development showed great promise. As is, it’s still a worthy addition to our list.
Hosted by Source Forge, JSpider was developed with Java under the LGPL Open Source license as a customizable open source website crawler engine. You can run JSpider to check sites for internal server errors, look up outgoing and internal links, create a sitemap to analyze your website’s layout and categorization structure, and download entire websites.
The developers have also posted an open calling for anyone who uses JSpider to submit feature requests and bug reports, as well as any developers willing to provide patches that resolve issues and implement new features.
Because it’s such a highly configurable platform, you have the option of adding any number of functions by writing JSpider plugins, which the developers (who seem to have last updated the program themselves in 2004) encourage users to make available for other community members. Of course, this doesn’t include breaking the rules—JSpider is designed to be compliant with the Standard for Robot Exclusion.
Using the Crawler Workbench allows you to design and control a customized website crawler of your own. It allows you to visualize groups of pages as a graph, save website pages to your PC for offline viewing, connect pages together to read and (or) print them as one document and extract elements such as text patterns.
Without the WebSPHINX Class Library, however, none of it would be possible, as it’s your source for support in developing your website crawler. It offers a simple application framework for website page retrieval, tolerant HTML parsing, pattern matching, and simple HTML transformations for linking pages, renaming links, and saving website pages to your disk.
The standard for Robot Exclusion-compliant, WebSPHINX is one of the better open source website crawlers available.
An object oriented library by Uwe Hunfeld, PHP Crawl can be used for website and website page crawling under several different platform parameters, including the traditional Windows and Linux operating systems.
By overriding PHP Crawl’s base class to implement customized functionality for the handleDocumentInfo and handleHeaderInfo features, you’ll be able to create your website crawler using the program as a foundation. In this way, you’ll not only be able to scan each website page but control the crawl process and include manipulation functions to the software. A good example of crawling code that can be implemented in PHP Crawl to do so is available at Dev Dungeon, who also provide open source coding to add a PHP Simple HTML DOM one-file library. This option allows you to extract links, headings, and other elements for parsing.
PHP Crawl is for developers, but if you follow the tutorials provided by Dev Dungeon a basic understanding of PHP coding will suffice.
Available as an HTTP Collector and a Filesystem Collector, the Norconex Collectors are probably the best open source website crawling solutions available for download.
Although designed for developers, the programs are often extended by integrators and (while still being easily modifiable) can be used comfortably by anyone with limited developing experience too. Using one of their readily available Committers, or building your own, Norconex Collectors allow you to make submissions to any search engine you please. And if there’s a server crash, the Collector will resume its processes where it left off.
The HTTP Collector is designed for crawling website content for building your search engine index (which can also help you to determine how well your site is performing), while the Filesystem Collector is geared toward collecting, parsing, and modifying information on local hard drives and network locations.
DATAPARK SEARCH ENGINE
Developed using C++ and compatible on several platforms, DataparkSearch Engine is designed to organize search results in a website, group of websites, local systems, and intranets. Some of the key features include HTTP, https, FTP, NNTP, and news URL scheme support, as well as an htdb URL for SQL database indexation. DataparkSearch Engine is also able to index text/plain, text/XML, text/HTML, audio/MPEG, and image/gif types natively, as well as multilingual websites and pages with content negotiation.
Using the vector calculation, results can be sorted by relevancy. Popularity ranking reports are classified as “Goo,” which adds weight to incoming links, as well as “Neo,” based on the neutral network model. You can also view your results according to the last time a site or page has been modified, or by a combination of relevancy and popularity rank to determine its importance. DataparkSearch Engine also allows for a significant reduction in search times by incorporating active caching mechanisms.
WEB CRAWLER BY DIFFBOT
Another rather simply named online scanner, the Web Crawler by Diffbot is a free version of the API Crawlbot included in their paid packages. It extracts information on a range of features of pages. The data contained are titles, text, HTML coding, comments, date of publication, entity tags, author, images, videos, and a few more.
While the site claims to crawl pages within seconds, it can take a few minutes if there’s a lot of internal links on your site. There’s an ill-structured web results page that can be viewed online, but you can also download the report in one of two formats: CSV or JSON.
You’re also limited in the number of searches, but it isn’t stipulated as to exactly what that limitation is—although you can share the tool on social media to gain 300 more crawls before being prompted to sign up for a 14-day free trial for any of Diffbot’s paid packages.
11. THE INTERNET ARCHIVE’S HERITRIX
The Internet Archive’s Heritrix is the first open source website crawler we’ll be mentioning. Because it (and, in fact, the rest of the crawlers that follow it on our list) require some knowledge of coding and programming languages. Hence, it’s not for everyone, but still well worth the mention.
Everyone is free to download and use Heritrix, for redistribution and (or) modification (allowing you to build your website crawler using Heritrix as a foundation), within the limitations stipulated in the Apache License.
How do web crawlers work?
The Internet is constantly changing and expanding. Because it is not possible to know how many total webpages there are on the Internet, web crawler bots start from a seed, or a list of known URLs. They crawl the webpages at those URLs first. As they crawl those webpages, they will find hyperlinks to other URLs, and they add those to the list of pages to crawl next.
Given the vast number of webpages on the Internet that could be indexed for search, this process could go on almost indefinitely. However, a web crawler will follow certain policies that make it more selective about which pages to crawl, in what order to crawl them, and how often they should crawl them again to check for content updates.
IMPORTANCE OF WEBCRAWLERS
Data lies in the heart of any business, even more if its tech related. With all the open standards of today like RSS feeds or APIs sharing data across systems have become relatively easier.
For example, if you want to read today’s financial news directly from your email inbox, you could simply subscribe to the provider’s (like Google News or BBC) RSS feed. Similarly, your system or application could also use a provider’s API to get upto date stock market prices. Feeds and XML makes sharing data very easy and that has been the whole reason they exist in the first place.
But what about data that is unstructured or does not have RSS feeds for you to consume? How will you go about fetching them? You could always hire people to manually log on and save the info into an Excel sheet – but the process gets tedious and impractical.
Lets take a simple example. You have a shopping site and have 1000 products. You want to make sure your prices are competitive. In order to do that, you will need to monitor your competitors’ sites and their prices for the same products. If there are a lot of products and lot of competitors it is going to be very difficult to do this without some automated process.
This is where Web Crawling comes into picture. There is a good chance you or your business will have need for automated web crawling to gather data which will be processed to make business decisions. Web Crawling technology was made popular by Google for its use in their search. They were the first to see the importance of immense amount of data on the web which was then not crawled and indexed. They capitalized on that – sent out thousands of crawlers to the web and indexed everything they could possibly find!
Lets scale down a bit, and think just about your business. What would web crawling do for you? Here are a few things that come to my mind:
- Gather data for business intelligence
- Market research about the product or service you are offering
- Monitor competitor’s product or solution 24/7
- Gather user behavior data to make your product perform better
- Simply make your product more relevant with more content