Extraction of information is quite a hectic task if not implemented with care. The thing is that any user who wants to extract the required information from the internet and various web pages present has to go through a lot of troubles.

But, when web scraping comes into the scenario, things change.

We at Scrapingpass.com can be your best friend when you have lost your way in the grand scale of scarping tech. We excel in each and every aspect of Scraping and have an innovative strategy to help you easily extract the information you require:

  • We provide supreme services that are easy to use and comprehend.
  • Can reduce your workload by a hefty amount and give you the best tools for scraping and automation.
  • We remain consistent and updated with the changes in the environment of scraping. We ensure our supremacy in the field.

So, if any user does not want to go through each site looking for the things he wants and the things he doesn’t, he can always use our web scraping technology

Basics Of Web Scraping :

Scraping is not implemented out of the blue but, has many technicalities. This is where the bots come into the picture. They are deployed in this process.

  • Bots like spider bots and also, web crawlers can be used in such scenarios where scraping is needed.
  • They can simply grab the information that the users want and afterward, the user can save this relevant information in any manner he or she wants.
Web Scrape with Node.js and Cheerio

Source: Medium.com

This is quite efficient and hence, most people use web scraping as a part of their daily use. So, below we will be seeing how this tech can be applied to the process of extraction of information from a single-page web application.

Why do we use Web Scraping?

Here are common areas where web scraping has proven to be quite beneficial :

  • Scraping can be used to extract the information on stock prices in the API of an app.
  • Before buying anything online, analysis can be done after scraping the required data
  • Statistical information extraction in case of sports betting.
  • For market data, financial pages can be scraped in order to find product relevancy

These are some of the fields where web scraping has made significant changes.

The Main Steps of Web Scraping :

  1. The whole process of web scraping can be divided into 3 locations :
  • From the website, the source code of the HTML is taken
  • Thereafter, the information that is relevant is extracted
  • Then, the information that is gathered is stored in a suitable location

The first and the third points barely scratch the surface, the actual messed up yet simple part is the second point. This is where most of the things are done and implemented. Check a detailed analysis here.

2. There is a need for 2 npm modules that are open-source :

  • Axios:

    HTTP client for the Node.js and also, the user’s browser

HTTP requests using Axios

  • Cheerio:

    jQuery is implemented from Node.js. Cheerio hence, makes it quite easy for any user to gather information from DOM files.

Take a look at our Top 7 JavaScript Web Scraping Libraries in order to gather information on other quite famous libraries.

Setup for Web Scraping using Node JS :

Before anything, or implementing any kind of code or something, you absolutely need to have the Node.js and npm installed and downloaded on your system which is the basic requirement.

Web Scraping with Node.js and Cheerio - YouTube

YouTube

Thereafter, in order to verify it, you can simply choose any empty directory and thereafter type the code below and also, create an empty index.js page which will contain the following code:

npm init

The initial setup will be completed and thereafter, the user will have created a package.json file.

As dependencies, check the addition of Axios and Cheerio from the nvm.

npm install axios cheerio

Thereafter, find and open the index.js file that has just been created in the text editor that you find suitable for your purpose or check on the internet for the best text editors :

const axios = require('axios'); 
const cheerio = require('cheerio');

Here’s how the scraping is done, this is where the magic happens :

Make the Request :

Consider this website <https://api.buttercms.com/v2/pages/> which we will be scraping. In order to get the content on this website, we will have to make an HTTP request. This is where Axios will make its play :

Axios is well-known and is easy to handle and use. It has been around for quite some time and many people use it for web scraping.

const axios = require('axios') 
axios.get('https://buttercms.com/docs/api/').then((response) => { 
 console.log(response.data) }
)

After the process is complete, the response that the user would be presented will be :

<pre class="highlight shell"><code>curl -X GET <span class="s1">&apos;https://api.buttercms.com/v2/pages/&lt;page_type_slug&gt;/&lt;page_slug&gt;/?auth_token=api_token_b60a008a&apos;</span>\n</code></pre>

What we are doing is that the request that we have made with the help of Axios has been stored into Cheerio and this is what web scraping is all about.

The thing is that when the HTML and the content contained in it reaches Cheerio, immediately gets to the work of parsing it :

Parsing HTML with Cheerio.js :

The thing where Cheerio is quite beneficial is that it will provide the user with queries like jQuery via the DOM structure of the HTML that the user loads and this is the next step.

In the case of our example, here’s how things will happen :

<const cheerio = require('cheerio') 
const axios = require('axios')>

axios.get('https://buttercms.com/docs/api/').then((response) => { 
 const $ = cheerio.load(response.data) 
 const urlElems = $('pre.highlight.shell') 
 for (let i = 0; i < urlElems.length; i++) { 
 const urlSpan = $(urlElems[i]).find('span.s1')[0] 

 if (urlSpan) { 
 const urlText = $(urlSpan).text() 
 console.log(urlText) 
}}
}]

The first step we initiate is the loading of the output HTML into the Cheerio and thereafter, once this HTML content is loaded in our desired location, we can easily query the DOM structure for the relevant and the required data that is needed by us.

Here’s the output from the implementation of the code which consists of all the information that the user needs :

'https://api.buttercms.com/v2/posts/?auth_token=e47fc1e1ee6cb9496247914f7da8be296a09d91b'
'https://api.buttercms.com/v2/pages/<page_type_slug>/<page_slug>/?auth_token=e47fc1e1ee6cb9496247914f7da8be296a09d91b'
'https://api.buttercms.com/v2/pages/<page_type>/?auth_token=e47fc1e1ee6cb9496247914f7da8be296a09d91b'
'https://api.buttercms.com/v2/content/?keys=homepage_headline,homepage_title&auth_token=e47fc1e1ee6cb9496247914f7da8be296a09d91b'
'https://api.buttercms.com/v2/posts/?page=1&page_size=10&auth_token=e47fc1e1ee6cb9496247914f7da8be296a09d91b'
'https://api.buttercms.com/v2/posts/<slug>/?auth_token=e47fc1e1ee6cb9496247914f7da8be296a09d91b'
'https://api.buttercms.com/v2/search/?query=my+favorite+post&auth_token=e47fc1e1ee6cb9496247914f7da8be296a09d91b'
'https://api.buttercms.com/v2/authors/?auth_token=e47fc1e1ee6cb9496247914f7da8be296a09d91b'
'https://api.buttercms.com/v2/authors/jennifer-smith/?auth_token=e47fc1e1ee6cb9496247914f7da8be296a09d91b'
'https://api.buttercms.com/v2/categories/?auth_token=e47fc1e1ee6cb9496247914f7da8be296a09d91b'
'https://api.buttercms.com/v2/categories/product-updates/?auth_token=e47fc1e1ee6cb9496247914f7da8be296a09d91b'
'https://api.buttercms.com/v2/tags/?auth_token=e47fc1e1ee6cb9496247914f7da8be296a09d91b'
'https://api.buttercms.com/v2/tags/product-updates/?auth_token=e47fc1e1ee6cb9496247914f7da8be296a09d91b'
'https://api.buttercms.com/v2/feeds/rss/?auth_token=e47fc1e1ee6cb9496247914f7da8be296a09d91b'
'https://api.buttercms.com/v2/feeds/atom/?auth_token=e47fc1e1ee6cb9496247914f7da8be296a09d91b'
'https://api.buttercms.com/v2/feeds/sitemap/?auth_token=e47fc1e1ee6cb9496247914f7da8be296a09d91b'

Therefore, in the end, we have scraped the information that was eventually needed by us.

This Was All You Needed To Know :

This is how web scraping can be implemented using 2 basic tools, Axios and Cheerio.

For Node.js users, this is how the whole strategy is to be implemented and in the end, this is how the data the user needs can be extracted.

Axios, Cheerio, and Node.js all go hand in hand and they can give any developer an edge so as to implement the basics of web scraping. The suitability of their environment is what boosts its engagement.

While above, we have described all the steps needed to easily master the practice of scraping and also, gather the respective information related to any website.

If there is any problem that the user faces, we at Scrapingpass.com are quite eager to help you.

Was this post helpful?