From their website:
Beautiful Soup is a Python HTML/XML parser designed for quick turnaround projects like screen-scraping. Three features make it powerful:
1. Beautiful Soup won't choke if you give it bad markup. It yields a parse tree that makes approximately as much sense as your original document. This is usually good enough to collect the data you need and run away.
2. 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. You don't have to create a custom parser for each application.
3. Beautiful Soup automatically converts incoming documents to Unicode and outgoing documents to UTF-8. You don't have to think about encodings, unless the document doesn't specify an encoding and Beautiful Soup can't auto detect one. Then you just have to specify the original encoding.
The reasons I have decided to learn it:
1. It will be fun to learn a new style for my web spiders
2. It can be used to parse both HTML and XML
3. Sometimes it in buyer's requirement that "Beautiful Soup" should be used in the Python spider
You can download it from here: http://www.crummy.com/software/BeautifulSoup/
Ruby programmers can enjoy Rubyful Soup
Hope the soup will help you to have a better scraping experience (for me too) :-)