A web crawler is a program that visits websites and reads their pages to create entries for a search engine index. It follows links from page to page until all pages have been read. Web scraping refers to an application that processes the HTML of a web page to extract data for manipulation, such as converting the page to another format. Web scraping scripts simulate a person viewing a site to connect to pages and extract specific information. Web crawlers and scrapers are used for data mining, copying website contents, online price comparisons, and checking search engine rankings. Common languages used include PhantomJS, CasperJS, PHP, Python, and Perl.