Book Image

Hands-On Web Scraping with Python - Second Edition

By : Anish Chapagain
Book Image

Hands-On Web Scraping with Python - Second Edition

By: Anish Chapagain

Overview of this book

Web scraping is a powerful tool for extracting data from the web, but it can be daunting for those without a technical background. Designed for novices, this book will help you grasp the fundamentals of web scraping and Python programming, even if you have no prior experience. Adopting a practical, hands-on approach, this updated edition of Hands-On Web Scraping with Python uses real-world examples and exercises to explain key concepts. Starting with an introduction to web scraping fundamentals and Python programming, you’ll cover a range of scraping techniques, including requests, lxml, pyquery, Scrapy, and Beautiful Soup. You’ll also get to grips with advanced topics such as secure web handling, web APIs, Selenium for web scraping, PDF extraction, regex, data analysis, EDA reports, visualization, and machine learning. This book emphasizes the importance of learning by doing. Each chapter integrates examples that demonstrate practical techniques and related skills. By the end of this book, you’ll be equipped with the skills to extract data from websites, a solid understanding of web scraping and Python programming, and the confidence to use these skills in your projects for analysis, visualization, and information discovery.
Table of Contents (20 chapters)
1
Part 1:Python and Web Scraping
4
Part 2:Beginning Web Scraping
8
Part 3:Advanced Scraping Concepts
13
Part 4:Advanced Data-Related Concepts
16
Part 5:Conclusion

Conventions used

There are a number of text conventions used throughout this book.

Code in text: Indicates code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles. Here is an example: “Here, we have expressed our interest in only finding the information from the content attribute with the <meta> tag, which has the name attribute with the keywords and description values, respectively.”

A block of code is set as follows:

source.find(‘a:contains(“Web”)’) # [<a.menuitm>, <a>, <a>, <a>, <a>]
source.find(‘a:contains(“Web”):last’).text()
# ‘Web Scraper’
source.find(‘a:contains(“Web”):last’).attr(‘href’) # ‘#’

Any command-line input or output is written as follows:

(secondEd) C:\HOWScraping2E> pip install jupyterlab

Outputs and comments inside blocks of code look as follows:

# [<a.menuitm>, <a>, <a>, <a>, <a>]
# ‘Web Scraper’
# ‘#’

Bold: Indicates a new term, an important word, or words that you see onscreen. For instance, words in menus or dialog boxes appear in bold. Here is an example: “In addition, we will create separate files for author and quotes.”

Tips or important notes

Appear like this.