Book Image

Getting Started with Beautiful Soup

By : Vineeth G Nair
Book Image

Getting Started with Beautiful Soup

By: Vineeth G Nair

Overview of this book

Beautiful Soup is a Python library designed for quick turnaround projects like screen-scraping. Beautiful Soup provides a few simple methods and Pythonic idioms for navigating, searching, and modifying a parse tree: a toolkit for dissecting a document and extracting what you need without writing excess code for an application. It doesn't take much code to write an application using Beautiful Soup. Getting Started with Beautiful Soup is a practical guide to Beautiful Soup using Python. The book starts by walking you through the installation of each and every feature of Beautiful Soup using simple examples which include sample Python codes as well as diagrams and screenshots wherever required for better understanding. The book discusses the problems of how exactly you can get data out of a website and provides an easy solution with the help of a real website and sample code. Getting Started with Beautiful Soup goes over the different methods to install Beautiful Soup in both Linux and Windows systems. You will then learn about searching, navigating, content modification, encoding support, and output formatting with the help of examples and sample Python codes for each example so that you can try them out to get a better understanding. This book is a practical guide for scraping information from any website. If you want to learn how to efficiently scrape pages from websites, then this book is for you.
Table of Contents (15 chapters)
Getting Started with Beautiful Soup
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Special functions to modify content


Apart from the methods we saw before, Beautiful Soup has the following other methods for modifying the content:

  • The insert_after() and insert_before() methods:

    As the name implies, these methods are used to insert a tag or string after or before another tag or string. The only parameter accepted by this method is the NavigavleString or Tag object.

    For example, we can add another div tag with class=ecosystem to the ecological pyramid example using insert_after(). To use this, we need to first find the div tag with class=number within the first producer li ; this is shown as follows:

    soup = BeautifulSoup(html_markup,"lxml")
    div_number = soup.find("div",class_="number")
    div_ecosystem = soup.new_tag("div")
    div_ecosystem['class'] = "ecosystem"
    div_ecosystem.append("soil")
    div_number.insert_after(div_ecosystem)
    print(soup.prettify())
    
    #output
    <html>
      <body>
        <div class="ecopyramid">
          <ul id="producers">
            <li class="producerlist...