A very rough proxy for anger at the Pope

This morning brought the news that Angela Merkel has decided to add her voice to the chorus of criticism directed at Pope Benedict for his decision, on January 21, 2009, to lift the excommunication of holocaust denying bishop Richard Williamson. Pope Benedict was himself a member of the Hitler Youth as a young man, which obviously complicates matters for him when he starts ex-excommunicating holocaust deniers.

I figure a very rough proxy for anger about the issue has to be the number of Google hits for “Nazi Pope” in a particular period of time. Of course, we should expect a baseline number of hits as a result of the controversy surrounding Pope Pius XII, and there’s bound to be a lot of noise (people angrily objecting to the term “Nazi Pope” for example). Anyway, this chart is rough and crappy, but it gives you an idea.

Graph of google hits for nazi pop over time.

It’s even more remarkable if you assume that the vast bulk of the increase comes from the period after January 21, 2009. I wonder what February will look like.

Description of how I made the chart is below the fold, in case anyone wants to check its accuracy.

First, the chart depends on my getting the conversion of Gregorian to Julian dates right (needed to query google properly), which I’m not at all confident I managed to do. The script below is unbelievably hackish. I just used it to generate a list of queries to run. I ran them by hand because there were so few, and because I’ve heard horror stories of Google shutting out people who use automated queries. The function Greg_2_Jul() is basically ripped off from elsewhere and adapted to Python. It sorta kinda seems to work:

import time
import datetime
import calendar
import matplotlib.pyplot as plt

def Greg_2_Jul(y, m, d):
    A = y/100
    B = A/4
    C = 2-A+B
    E = int(365.25 * (y + 4716))
    F = int(30.6001 *(m+1))
    return int(C + d + E + F - 1524.5)

def queryConstructor(query, start, end):
    while start < end:
        days_in_month = calendar.monthrange(start.year, start.month)[1] #monthrange return tuple of first day of month and number of days in month
        greg_start = Greg_2_Jul(start.year, start.month, start.day)
        moving_end = start + datetime.timedelta(days_in_month - 1)
        greg_end = Greg_2_Jul(moving_end.year, moving_end.month, moving_end.day)
        print 'Query for the dates %s to %s' % (start, moving_end)
        print '"%s" daterange:%d-%d' % (query, greg_start, greg_end)
        print '\n' * 2
        start = moving_end + datetime.timedelta(1)

start = datetime.date(2008, 1, 1)
end = datetime.date(2009, 1, 31)
queryConstructor('Nazi Pope', start, end)

Then I just used matplotlib to draw the results I had recorded by hand:

months = range(13)
hits = [113, 186, 179, 303, 156, 153, 187, 174, 193, 199, 304, 390, 803]
plt.xlabel('Month, starting Jan, 2008 and ending Jan, 2009')
plt.ylabel('Google results for "Nazi Pope" during the month')
plt.title('Google results for "Nazi Pope" over time')
plt.plot(dates, hits)
plt.show()