I think you really get more interesting data by capturing the raw JSON that it uses for plotting. It includes related headers that do not come with CSV downloads. This works for multiple queries (5?) Before you reach the quota.
import re import requests _GOOGLE_TRENDS_URL = 'http://www.google.com/trends/trendsReport?hl=en-US&content=1&q=%s&hl=en-US&content=1' term = 'foo' response = requests.get(_GOOGLE_TRENDS_URL % term) if response.status_code == requests.codes.ok: data_line = [l for l in response.content.splitlines() if 'var chartData' in l][0] chart_data = re.sub(r'.*var chartData = (.*?);.*', r'\1', data_line)
Productivity:
January 2013: 21 February 2013: 21 March 2013: 21 April 2013: 20 May 2013: 20 June 2013: 20 July 2013: 20 August 2013: 21 September 2013: 19 October 2013: 20 November 2013: 21 December 2013 (partial data): 22
source share