
Map Numerical Data the Easy Way #83
Chapter 7, Names and Places
|
419
HACK
The following Python code harvests the population data by downloading the
page and scraping the HTML. The output is, interestingly, another Python
script, which contains the population growth values and can be imported
into yet another Python script to generate the imagery. A more advanced
version of this hack might save the data in a database somewhere for later
use, but…this is a hack, after all:
import urllib
res = [ ]
html = urllib.urlopen('http://www.cia.gov/cia/publications/factbook/fields/
2002.html').read( )
for tag in html.split('class="CountryLink">')[1:]:
country, tag = tag.split('</a',1)
growth = tag.split('class="Normal">',1)[1].split('%')[0].strip( )
if growth[0]= ='N': growth = None
else: growth = float(growth)
res.append( [country,growth] )
print "countryList = %s" % `res`
Note the use of the backticks in the last line, which causes Python to pro-
duce the representation of the associated list in Python code. We save the
Python code generated by this script as countryList.py:
$ python getCountryList.py > countryList.py
Tying It All Together
Now, fire up your favorite image editor, load a world map with countries on
it, and give country
i in the produced list RGB color (i, 255 - i, 238). Yes, it
might take some time, and each country needs to be done in the exact order
it’s listed in your data set, but the task