Book Image

Hands-On Web Scraping with Python

By : Anish Chapagain
Book Image

Hands-On Web Scraping with Python

By: Anish Chapagain

Overview of this book

Web scraping is an essential technique used in many organizations to gather valuable data from web pages. This book will enable you to delve into web scraping techniques and methodologies. The book will introduce you to the fundamental concepts of web scraping techniques and how they can be applied to multiple sets of web pages. You'll use powerful libraries from the Python ecosystem such as Scrapy, lxml, pyquery, and bs4 to carry out web scraping operations. You will then get up to speed with simple to intermediate scraping operations such as identifying information from web pages and using patterns or attributes to retrieve information. This book adopts a practical approach to web scraping concepts and tools, guiding you through a series of use cases and showing you how to use the best tools and techniques to efficiently scrape web pages. You'll even cover the use of other popular web scraping tools, such as Selenium, Regex, and web-based APIs. By the end of this book, you will have learned how to efficiently scrape the web using different techniques with Python and other popular tools.
Table of Contents (16 chapters)
Free Chapter
1
Section 1: Introduction to Web Scraping
3
Section 2: Beginning Web Scraping
8
Section 3: Advanced Concepts
13
Section 4: Conclusion

Working with cookies and sessions

In this section, we will be handling form processing for user authentication and managing cookies and sessions for http://quotes.toscrape.com/login from http://toscrape.com

In order to log in, you need to log in with a CSRF token (any username/password works).

Let's set up the code. The pyquery and requests libraries need to be imported and the required URLs will be collected and used. The getCustomHeaders() function, together with the cookieHeader argument, is used to set the cookie value for the URL request headers. The responseCookies() function, together with the response argument, displays the headers and cookies, and also returns the Set-Cookie value from cookies:

from pyquery import PyQuery as pq
import requests
mainUrl = "http://toscrape.com/"
loginUrl = "http://quotes.toscrape.com/login"
quoteUrl = "http:/...