7 # see http://code.google.com/intl/ja/apis/analytics/docs/gdata/gdataDeveloperGuide.html
8 import gdata.analytics.client
9 import gdata.sample_util
11 from data2db import GACacheDB
13 APP_NAME = "ganal_test"
14 #url = "http://sourceforge.jp/magazine/10/04/20/1033216"
16 def get_data_by_day(cli, year, month, day):
17 baseurl = "/magazine/%02d/%02d/%02d/"
18 url = baseurl % (year-2000, month, day)
20 day_start = datetime.date(year, month, day)
21 day_end = day_start + datetime.timedelta(31)
22 return get_data_feed(cli, url, day_start.isoformat(), day_end.isoformat())
24 def get_data_feed(cli, url, start_date, end_date):
26 print url + " : " + start_date + " to " + end_date
28 table_id = "ga:1443341" # sourceforge.jp
30 # url = "http://sourceforge.jp/magazine/10/04/20/1033216"
31 data_query = gdata.analytics.client.DataFeedQuery({
33 'start-date': start_date,
35 'dimensions': 'ga:pagePath,ga:date',
36 'metrics': 'ga:pageviews,ga:visits',
37 'sort': 'ga:pagePath',
38 'filters': "ga:pagePath=@" + url,
39 'max-results': max_results})
41 feed = cli.GetDataFeed(data_query)
44 for ent in feed.entry:
45 path = ent.get_object("ga:pagePath").value
46 date = ent.get_object("ga:date").value
47 pv = ent.get_object("ga:pageviews").value
48 visits = ent.get_object("ga:visits").value
49 result.append((path, date, pv, visits))
57 sys.exit("%s username" % sys.argv[0])
59 passwd = getpass.getpass()
60 cli = gdata.analytics.client.AnalyticsClient(source=APP_NAME)
64 cli.client_login(email, passwd, APP_NAME)
65 except gdata.client.BadAuthentication:
66 exit('Invalid user credentials given.')
67 except gdata.client.Error:
70 start_date = datetime.date(2010, 8, 31)
71 # start_date = datetime.date(2010, 3, 1)
74 # f = open("result.txt", "w")
79 td = datetime.timedelta(d)
80 target = start_date + td
81 l = get_data_by_day(cli, target.year, target.month, target.day)
89 # except UnicodeEncodeError:
90 # f.write(st.encode("utf-8"))
94 if __name__ == "__main__":