background preloader

Webscraping with Python

Facebook Twitter

Mechanize – Writing Bots in Python Made Simple by Guy Rutenberg. I’ve been using python to write various bots and crawler for a long time.

mechanize – Writing Bots in Python Made Simple by Guy Rutenberg

Few days ago I needed to write some simple bot to remove some 400+ spam pages in Sikumuna, I took an old script of mine (from 2006) in order to modify it. The script used ClientForm, a python module that allows you to easily parse and fill html forms using python. I quickly found that ClientForm is now deprecated in favor of mechanize. In the beginning I was partly set back by the change, as ClientForm was pretty easy to use, and mechanize‘s documentation could use some improvement.

However, I quickly changed my mind about mechanize. For future reference for myself, and as another code example to mechanizes sparse documentation I’m giving below the gist of the simple bot I wrote: This isn’t a complete code example, as the rest of the code is just mundane, but you can clearly see how simple it is to use mechanize. The interesting parts are: Related.

Mechanize — Documentation. Full API documentation is in the docstrings and the documentation of urllib2.

mechanize — Documentation

The documentation in these web pages is in need of reorganisation at the moment, after the merge of ClientCookie and ClientForm into mechanize. Tests and examples Examples The front page has some introductory examples. The examples directory in the source packages contains a couple of silly, but working, scripts to demonstrate basic use of the module. See also the forms examples (these examples use the forms API independently of mechanize.Browser).

Tests To run the tests: Mechanize. Julian_Todd / Python mechanize cheat sheet. Scrape.py. Scrape.py is a Python module for scraping content from webpages.

scrape.py

Using it, you can easily fetch pages, follow links, and submit forms. Cookies, redirections, and SSL are handled automatically. (For SSL, you either need a version of Python with the socket.ssl function, or the curl command-line utility.) scrape.py does not parse the page into a complete parse tree, so it can handle pages with sloppy syntax. You are free to locate content in the page according to nearby text, tags, or even comments. You can download the module or read the documentation page. Setting up Aptana Studio 3 for Django. I am describing how to set up Aptana Studio 3 with Django.

Setting up Aptana Studio 3 for Django

I had to decide among a multitude of different development environments (IDE for Integrated Development Environment). My choice fell on Aptana Studion 3 as it integrates quite nicely with Python, Django and offers text highlighting for Javascript, HTML and CSS (all that besides being open source). Please note that I am using Windows 7 and will describe the installation process on this system. Python recipe: grab page, scrape table, download file . palewire. Here's a change of pace.

python recipe: grab page, scrape table, download file . palewire

Our first few lessons focused on how you can use Python to goof with a bunch of local files. This time we're going to try something different: using Python to go online and screw around with the Web. Whenever I caucus with aspiring NICARians and other data hungry reporters, it's not long before the topic of web scraping comes up. While automated text processing and database management may sound well and good, there's something sexy about pulling down a fatty government database that catches people's imagination and inspires them to take on the challenge of learning a new programming language.

Or at least entertain the idea until they run into a road block. A number of fellow travelers do a noble job instructing people on the basics during NICAR's annual seminars. But before we get going, let me just say that I'm going to assume you read the first couple recipes and won't be working too hard to explain the stuff covered there. Python 2.7 Pt 1 [Getting started] Python 2.7 Pt 2 [Tuple/List] Python 2.7 Pt 3 [Dictionary / String Manip] Python 2.7 Pt 4 [Conditional Expressions] Python 2.7 Pt 5 [Looping] BeginnersGuide/NonProgrammers. An open source web scraping framework for Python.

Tutorial — Scrapy 0.15.1 documentation. In this tutorial, we’ll assume that Scrapy is already installed on your system.

Tutorial — Scrapy 0.15.1 documentation

If that’s not the case, see Installation guide. We are going to use Open directory project (dmoz) as our example domain to scrape. This tutorial will walk you through these tasks: Creating a new Scrapy projectDefining the Items you will extractWriting a spider to crawl a site and extract ItemsWriting an Item Pipeline to store the extracted Items. Beautiful Soup Documentation — Beautiful Soup v4.0.0 documentation.

Beautiful Soup is a Python library for pulling data out of HTML and XML files.

Beautiful Soup Documentation — Beautiful Soup v4.0.0 documentation

It works with your favorite parser to provide idiomatic ways of navigating, searching, and modifying the parse tree. It commonly saves programmers hours or days of work. These instructions illustrate all major features of Beautiful Soup 4, with examples. Setting up Python in Windows 7. An all-wise journalist once told me that “everything is easier in Linux,” and after working with it for a few years I’d have to agree — especially when it comes to software setup for data journalism. But … Many newsroom types spend the day in Windows without the option of Ubuntu or another Linux OS. Scraping CDC flu data with Python. Getting my flu shot this week reminded me about weekly surveillance data the Centers for Disease Control and Prevention provides on flu prevalence across the nation.

I’d been planning to do some Python training for my team at work, so it seemed like a natural to write a quick Python scraper that grabs the main table on the site and turns it into a delimited text file. So I did, and I’m sharing. You can grab the code for the CDC-flu-scraper on Github. The code uses the Mechanize and BeautifulSoup modules for web browsing and html parsing, respectively. Much of what I demonstrate here I started learning via Ben Welsh’s fine tutorial on web scraping. We’re still early in flu season, but if you watch this data each week you’ll see the activity pick up quickly.