¿Intentando descargar datos de Google Trends pero se ignora el parámetro de fecha?

Estoy tratando de descargar los datos de Google Trends en formato CSV. Para consultas básicas he tenido éxito (siguiendo unaentrada en el blog por Christoph Riedl).

Problema: Por defecto, las tendencias se devuelven a partir de enero de 2004. Preferiría que las tendencias a partir de enero de 2011. Sin embargo, cuando agrego un parámetro de fecha a la solicitud de URL, se ignora por completo. No estoy seguro de cómo superar esto.

El siguiente código codificará el problema.

# Just copy/paste this stuff - these are helper functions
require(RCurl)

# This gets the GALX cookie which we need to pass back with the login form
getGALX <- function(curl) {
  txt = basicTextGatherer()
  curlPerform( url=loginURL, curl=curl, writefunction=txt$update, header=TRUE, ssl.verifypeer=FALSE )

  tmp <- txt$value()

  val <- grep("Cookie: GALX", strsplit(tmp, "\n")[[1]], val = TRUE)
  strsplit(val, "[:=;]")[[1]][3]

  return( strsplit( val, "[:=;]")[[1]][3]) 
}

# Function to perform Google login and get cookies ready
gLogin <- function(username, password) {
  ch <- getCurlHandle()

  ans <- (curlSetOpt(curl = ch,
                     ssl.verifypeer = FALSE,
                     useragent = getOption('HTTPUserAgent', "R"),
                     timeout = 60,         
                     followlocation = TRUE,
                     cookiejar = "./cookies",
                     cookiefile = ""))

  galx <- getGALX(ch)
  authenticatePage <- postForm(authenticateURL, .params=list(Email=username, Passwd=password, GALX=galx, PersistentCookie="yes", continue="http://www.google.com/trends"), curl=ch)

  authenticatePage2 <- getURL("http://www.google.com", curl=ch)

  if(getCurlInfo(ch)$response.code == 200) {
    print("Google login successful!")
  } else {
    print("Google login failed!")
  }
  return(ch)
}

# returns string w/o leading or trailing whitespace
trim <- function (x) gsub("^\\s+|\\s+$", "", x)

get_interest_over_time <- function(res, clean.col.names = TRUE) {
  # remove all text before "Interest over time" data block begins
  data <- gsub(".*Interest over time", "", res)

  # remove all text after "Interest over time" data block ends
  data <- gsub("\n\n.*", "", data)

  # convert "interest over time" data block into data.frame
  data.df <- read.table(text = data, sep =",", header=TRUE)

  # Split data range into to only end of week date 
  data.df$Week <- gsub(".*\\s-\\s", "", data.df$Week)
  data.df$Week <- as.Date(data.df$Week)

  # clean column names
  if(clean.col.names == TRUE) colnames(data.df) <- gsub("\\.\\..*", "", colnames(data.df))

  # return "interest over time" data.frame
  return(data.df)
}

En su navegador, inicie sesión en Google (por ejemplo, inicie sesión en gmail). El en R ejecuta lo siguiente:

# Username and password
username <- "email@address"
password <- "password"

# Login and Authentication URLs
loginURL     <- "https://accounts.google.com/accounts/ServiceLogin"
authenticateURL <- "https://accounts.google.com/accounts/ServiceLoginAuth"
trendsURL       <- "http://www.google.com/trends/TrendsRepport?"

# Google authentication
ch <- gLogin( username, password )
authenticatePage2 <- getURL("http://www.google.com", curl=ch)

Lo siguiente devuelve con éxito los datos de tendencias de google desde enero de 2004 (es decir, sin parámetro de fecha)

res <- getForm(trendsURL, q="ggplot2, ggplot", content=1, export=1, graph="all_csv", curl=ch)
df <- get_interest_over_time(res)
head(df)

        Week ggplot2 ggplot
1 2004-01-10       0      0
2 2004-01-17       0      0
3 2004-01-24       0      0
4 2004-01-31       0      0
5 2004-02-07       0      0
6 2004-02-14       0      0

SIN EMBARGO, se ignora la adición de un parámetro de fecha para devolver tendencias a partir de enero de 2013

res <- getForm(trendsURL, q="ggplot2, ggplot", date = "1/2013 11m", content=1, export=1, graph="all_csv", curl=ch)
df <- get_interest_over_time(res)
head(df)

        Week ggplot2 ggplot
1 2004-01-10       0      0
2 2004-01-17       0      0
3 2004-01-24       0      0
4 2004-01-31       0      0
5 2004-02-07       0      0
6 2004-02-14       0      0

NOTA 1: Lo mismo sucede con el parámetro cat = category. Lo anterior es más fácil de mostrar con fecha.

NOTA 2: como Google cambia la escala de los datos en función de la fecha de inicio, no se trata simplemente de filtrar el data.frame. Estoy interesado en por qué se ignora el parámetro de fecha.

Muchas gracias por tu tiempo.

Respuestas a la pregunta(2)

Su respuesta a la pregunta