Example Of Web Scraping



Some websites can contain a very large amount of invaluable data.

  1. Aug 19, 2019 While we explained some of the web scraping examples, the possibilities are endless and web scraping is something that can be taken advantage of by different businesses in different scenarios. At the end of the day, it helps make processes and decisions smarter using the power of data.
  2. May 25, 2020 Web Scraping with Selenium & Beautiful Soup — The 2-Step Process I accomplished this in two steps. Step 1 — Define the web pages that needed to be scraped and find the common tags used through the differing pages.

Stock prices, product details, sports stats, company contacts, you name it.

Dec 05, 2017 Python web scraping tutorial (with examples) Mokhtar Ebrahim Published: December 5, 2017 Last updated: June 3, 2020 In this tutorial, we will talk about Python web scraping and how to scrape web pages using multiple libraries such as Beautiful Soup, Selenium, and some other magic tools like PhantomJS.

If you wanted to access this information, you’d either have to use whatever format the website uses or copy-paste the information manually into a new document. Here’s where web scraping can help.

What is Web Scraping?

Web scraping refers to the extraction of data from a website. This information is collected and then exported into a format that is more useful for the user. Be it a spreadsheet or an API.

Although web scraping can be done manually, in most cases, automated tools are preferred when scraping web data as they can be less costly and work at a faster rate.

But in most cases, web scraping is not a simple task. Websites come in many shapes and forms, as a result, web scrapers vary in functionality and features.

If you want to find the best web scraper for your project, make sure to read on.

How do Web Scrapers Work?

Example Of Web Scraping

Automated web scrapers work in a rather simple but also complex way. After all, websites are built for humans to understand, not machines.

First, the web scraper will be given one or more URLs to load before scraping. The scraper then loads the entire HTML code for the page in question. More advanced scrapers will render the entire website, including CSS and Javascript elements.

Then the scraper will either extract all the data on the page or specific data selected by the user before the project is run.

Ideally, the user will go through the process of selecting the specific data they want from the page. For example, you might want to scrape an Amazon product page for prices and models but are not necessarily interested in product reviews.

Lastly, the web scraper will output all the data that has been collected into a format that is more useful to the user.

Most web scrapers will output data to a CSV or Excel spreadsheet, while more advanced scrapers will support other formats such as JSON which can be used for an API.

What Kind of Web Scrapers are There?

Web scrapers can drastically differ from each other on a case-by-case basis.

For simplicity’s sake, we will break down some of these aspects into 4 categories. Of course, there are more intricacies at play when comparing web scrapers.

  • self-built or pre-built
  • browser extension vs software
  • User interface
  • Cloud vs Local

Self-built or Pre-built

Just like how anyone can build a website, anyone can build their own web scraper.

However, the tools available to build your own web scraper still require some advanced programming knowledge. The scope of this knowledge also increases with the number of features you’d like your scraper to have.

On the other hand, there are numerous pre-built web scrapers that you can download and run right away. Some of these will also have advanced options added such as scrape scheduling, JSON and Google Sheets exports and more.

Browser extension vs Software

In general terms, web scrapers come in two forms: browser extensions or computer software.

Example Of Web Scraping Tool

Browser extensions are app-like programs that can be added onto your browser such as Google Chrome or Firefox. Some popular browser extensions include themes, ad blockers, messaging extensions and more.

Web scraping extensions have the benefit of being simpler to run and being integrated right into your browser.

However, these extensions are usually limited by living in your browser. Meaning that any advanced features that would have to occur outside of the browser would be impossible to implement. For example, IP Rotations would not be possible in this kind of extension.

Scraping

On the other hand, you will have actual web scraping software that can be downloaded and installed on your computer. While these are a bit less convenient than browser extensions, they make up for it in advanced features that are not limited by what your browser can and cannot do.

User Interface

The user interface between web scrapers can vary quite extremely.

For example, some web scraping tools will run with a minimal UI and a command line. Some users might find this unintuitive or confusing.

On the other hand, some web scrapers will have a full-fledged UI where the website is fully rendered for the user to just click on the data they want to scrape. These web scrapers are usually easier to work with for most people with limited technical knowledge.

Some scrapers will go as far as integrating help tips and suggestions through their UI to make sure the user understands each feature that the software offers.

Cloud vs Local

From where does your web scraper actually do its job?

Local web scrapers will run on your computer using its resources and internet connection. This means that if your web scraper has a high usage of CPU or RAM, your computer might become quite slow while your scrape runs. With long scraping tasks, this could put your computer out of commission for hours.

Additionally, if your scraper is set to run on a large number of URLs (such as product pages), it can have an impact on your ISP’s data caps.

Cloud-based web scrapers run on an off-site server which is usually provided by the company who developed the scraper itself. This means that your computer’s resources are freed up while your scraper runs and gathers data. You can then work on other tasks and be notified later once your scrape is ready to be exported.

This also allows for very easy integration of advanced features such as IP rotation, which can prevent your scraper from getting blocked from major websites due to their scraping activity.

What are Web Scrapers Used For?

By this point, you can probably think of several different ways in which web scrapers can be used. We’ve put some of the most common ones below (plus a few unique ones).

  • Scraping site data before a website migration
  • Scraping financial data for market research and insights

The list of things you can do with web scraping is almost endless. After all, it is all about what you can do with the data you’ve collected and how valuable you can make it.

Read our Beginner's guide to web scraping to start learning how to scrape any website!

The Best Web Scraper

So, now that you know the basics of web scraping, you’re probably wondering what is the best web scraper for you?

The obvious answer is that it depends.

The more you know about your scraping needs, the better of an idea you will have about what’s the best web scraper for you. However, that did not stop us from writing our guide on what makes the Best Web Scraper.

Example Of Web Scraping

Of course, we would always recommend ParseHub. Not only can it be downloaded for FREE but it comes with an incredibly powerful suite of features which we reviewed in this article. Including a friendly UI, cloud-based scrapping, awesome customer support and more.

Want to become an expert on Web Scraping for Free? Take ourfree web scraping courses and become Certified in Web Scraping today!

  • Python Web Scraping Tutorial
  • Python Web Scraping Resources
  • Selected Reading

In this chapter, let us learn how to perform web scraping on dynamic websites and the concepts involved in detail.

Introduction

Web scraping is a complex task and the complexity multiplies if the website is dynamic. According to United Nations Global Audit of Web Accessibility more than 70% of the websites are dynamic in nature and they rely on JavaScript for their functionalities.

Dynamic Website Example

Let us look at an example of a dynamic website and know about why it is difficult to scrape. Here we are going to take example of searching from a website named http://example.webscraping.com/places/default/search. But how can we say that this website is of dynamic nature? It can be judged from the output of following Python script which will try to scrape data from above mentioned webpage −

Output

The above output shows that the example scraper failed to extract information because the <div> element we are trying to find is empty.

Approaches for Scraping data from Dynamic Websites

We have seen that the scraper cannot scrape the information from a dynamic website because the data is loaded dynamically with JavaScript. In such cases, we can use the following two techniques for scraping data from dynamic JavaScript dependent websites −

  • Reverse Engineering JavaScript
  • Rendering JavaScript

Reverse Engineering JavaScript

The process called reverse engineering would be useful and lets us understand how data is loaded dynamically by web pages.

For doing this, we need to click the inspect element tab for a specified URL. Next, we will click NETWORK tab to find all the requests made for that web page including search.json with a path of /ajax. Instead of accessing AJAX data from browser or via NETWORK tab, we can do it with the help of following Python script too −

Example

The above script allows us to access JSON response by using Python json method. Similarly we can download the raw string response and by using python’s json.loads method, we can load it too. We are doing this with the help of following Python script. It will basically scrape all of the countries by searching the letter of the alphabet ‘a’ and then iterating the resulting pages of the JSON responses.

After running the above script, we will get the following output and the records would be saved in the file named countries.txt.

Output

Rendering JavaScript

In the previous section, we did reverse engineering on web page that how API worked and how we can use it to retrieve the results in single request. However, we can face following difficulties while doing reverse engineering −

  • Sometimes websites can be very difficult. For example, if the website is made with advanced browser tool such as Google Web Toolkit (GWT), then the resulting JS code would be machine-generated and difficult to understand and reverse engineer.

  • Some higher level frameworks like React.js can make reverse engineering difficult by abstracting already complex JavaScript logic.

The solution to the above difficulties is to use a browser rendering engine that parses HTML, applies the CSS formatting and executes JavaScript to display a web page.

Example Of Web Scraping Techniques

Example

In this example, for rendering Java Script we are going to use a familiar Python module Selenium. The following Python code will render a web page with the help of Selenium −

First, we need to import webdriver from selenium as follows −

Free Web Scraper

Now, provide the path of web driver which we have downloaded as per our requirement −

Example Of Web Scraping

Now, provide the url which we want to open in that web browser now controlled by our Python script.

Now, we can use ID of the search toolbox for setting the element to select.

Next, we can use java script to set the select box content as follows −

The following line of code shows that search is ready to be clicked on the web page −

Example Of Web Scraping

Web Scraping Projects

Next line of code shows that it will wait for 45 seconds for completing the AJAX request.

Now, for selecting country links, we can use the CSS selector as follows −

Now the text of each link can be extracted for creating the list of countries −





Comments are closed.