Adfoxãªã©ã®åºåã·ã¹ãã ã䜿çšããå Žåãç¶æ³ã¯ãå°é£ãã§ããããŸãã å€æ°ã®æåã§ã®è·éããã¯ãæçµçã«èª°ãããã€ç ã«é¥ãå¯èœæ§ãããããã®ã¢ã¯ã·ã§ã³ã®æçšãªéšåã§ãããã®ããŒã¿ã«åºã¥ãåæãšçµè«ã®ããã®æéããŸã£ããæ®ããªãã æã ã解決çã¯ãå¿ èŠãªããŒã¿ã®ã¢ããããŒãã®æ§æãæ¯æŽã§ããéçºè ããã®å©ããæ±ããããšã§ãã ãã ããå®éã«ã¯ãã¬ããŒãèŠä»¶ã¯é »ç¹ã«å€æŽãããéçºè ã絶ããåŒãå¯ããããšã¯ã§ããŸããã
ãã®èšäºãšä»¥éã®èšäºã§ã¯ãAmazon Web Servicesã§èªåããŒã¿ã¢ããããŒããç°¡åã«èšå®ããæ¹æ³ã玹ä»ããŸãã AWSã§ã¯ã12ãæéç¡æã®ã¢ã«ãŠã³ãã䜿çšã§ããŸããããã®å¶éã«ã¯èšäºã§èª¬æãããŠããã¢ã«ãŽãªãºã ãå«ãŸããŸãã ä»ã®ã³ã³ãã¥ãŒãã£ã³ã°ãã¯ãŒã¬ã³ã¿ã«ãµãŒãã¹ãéžæã§ããŸãããå®å šã«ç¡æã®ãã®ã¯èŠãŠããŸããã ããã«ãAWSã€ã³ã¹ã¿ã³ã¹ã«ã¯æ¢ã«å¿ èŠãªã©ã€ãã©ãªãåããpythonããããŸãã
ã«ãŠã³ã¿ãŒããŒã¿ã®äŸãšããŠèªåã®ãµã€ãã䜿çšããŸãã ãã®èšäºã®çµæã¯ãäžé£ã®ã«ãŠã³ã¿ãŒã«ã€ããŠãæå®ãããæ¥ä»ã®èšªåãæ¥ããšã«ã¢ããããŒãããå°ããªã¹ã¯ãªããã«ãªããŸãã ããã«åºã¥ããŠãå¿ èŠãªè·éããã«ããã«ç§»åã§ããŸãã ãã®æ¹æ³ã®æ¬ ç¹ã¯ãã¢ã«ãŠã³ãã®ã»ããã¢ãããšã€ã³ã¿ãŒãã§ãŒã¹ãžã®æ £ãã«çŽ1æéãããããšã§ãã ãã ãããã®åŸã®èšªåæã«ã¯ããã®æé ã¯å¿ èŠãããŸããã å®æããã€ã³ã¹ã¿ã³ã¹ãå®è¡ããã ãã§ãæ°åã§å¿ èŠãªããŒã¿ãåãåããŸãã
ããã§ã¯å§ããŸãããã Amazon Web Services console.aws.amazon.comã«ã¢ã«ãŠã³ããç»é²ãã管çã³ã³ãœãŒã«ãžã®ã¢ã¯ã»ã¹ãæ§æããŸãã æ®å¿µãªãããAWSãå®å šã«äœ¿çšããããã®ã¢ã«ãŠã³ããäœæããåŸãã«ãŒããæ€èšŒããããŸã§1æ¥åŸ ã€å¿ èŠããããŸãã ãã®èšäºã®æ çµã¿ã§ã¯ãè³éã¯ããããå·®ãåŒãããŸããïŒç¡æ䜿çšã®å¶éãè¶ ããããšã¯ãããŸããïŒã ã¢ã«ãŠã³ãç»é²ããã»ã¹ã¯ãAWSããã¥ã¡ã³ãïŒå ¥éãŸã§ïŒ docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-ug.pdfã§è©³ãã説æãããŠããŸãã
ã«ãŒãã®æ€èšŒã«æåãããšïŒãã®ããã»ã¹ã®å®äºã®éç¥ãã¡ãŒã«ã«éä¿¡ãããŸãïŒãconsole.aws.amazon.comã³ã³ãœãŒã«ã¯æ¬¡ã®ããã«ãªããŸãã

EC2ã«é²ã¿ãå·ŠåŽã®ããã«ã§[ã€ã³ã¹ã¿ã³ã¹]ãéžæããŸãã [ã€ã³ã¹ã¿ã³ã¹ã®èµ·å]ãã¯ãªãã¯ããŸãã

ããŸããŸãªãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®éžæè¢ãæäŸãããŸãã ãã®äŸã§ã¯ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®éžæã¯ããã»ã©éèŠã§ã¯ãããŸããã ç§ã¯Ubuntuã«æ £ããŠããŸãïŒã¹ã¯ãªãŒã³ã·ã§ããã®4è¡ç®ïŒã Amazon Linuxã®æåã®è¡ãéžæã§ããŸãã äŸãšã®éãã¯ãec2-userãã·ã³ã«ãã°ã€ã³ãããšãã«ãããã©ã«ãã§Amazon LinuxãŠãŒã¶ãŒãã°ã€ã³ã«ããããšã§ãã Ubuntuã®å Žåãubuntuãã°ã€ã³ïŒ

次ã®ã¹ãããã§ãä»®æ³ãã·ã³ã®ã¿ã€ããéžæããŸãã ç¡æã§äœ¿çšããã«ã¯ãæåã®ãªãã·ã§ã³t2.microãéžæããŸãã ä»ã®ãªãã·ã§ã³ã®äŸ¡æ Œã¯ã aws.amazon.com / en / ec2 / pricingã§ç¢ºèªã§ããŸãã

æåŸã®7çªç®ã®æé ã§ã[ã»ãã¥ãªãã£ã°ã«ãŒã]ãã£ãŒã«ãã®ã»ãã¥ãªãã£ã°ã«ãŒãã確èªãïŒå°ãªããšãèªåã®IPã¢ãã¬ã¹ã®ããŒã22ã«å¯ŸããŠSSHã¢ã¯ã»ã¹ãèš±å¯ããå¿ èŠããããŸãïŒã[èµ·å]ãã¯ãªãã¯ããŸãã ã€ã³ã¹ã¿ã³ã¹ã®ãªã¹ãã«æ»ããå®è¡äžã®ã€ã³ã¹ã¿ã³ã¹ã®[ã€ã³ã¹ã¿ã³ã¹ã®ç¶æ ]ãã£ãŒã«ããå®è¡ããããŸã§åŸ ã¡ãŸãïŒããã«ã¯æ°åããããŸãïŒã ã€ã³ã¹ã¿ã³ã¹ãå«ãè¡ãéžæãããããªãã¯DNSãæ¢ããŸãã ãããªãã¯DNSãã³ããŒããŠè»ã«è¡ããŸãã Windowsã®å ŽåãMAC-ã¿ãŒããã«ã®å Žåã¯Puttyã䜿çšããæ¹ãç°¡åã§ãã ã¢ã«ãŠã³ã確ç«ããã¥ã¡ã³ãã§ã¯ãWindowsããã³MACã®ãã®ããã»ã¹ã«ã€ããŠèª¬æããŠããŸãã 念ã®ãããããäžåºŠããã«ã€ããŠãç¥ããããŸãã Ubuntuãã°ã€ã³ãããŒã22ïŒ

[æ¥ç¶]-> [SSH]-> [èªèšŒ]ã§ãç§å¯ããŒãžã®ãã¹ïŒæ¡åŒµå* .ppkïŒãæå®ããããšãå¿ããªãã§ãã ããã

ããµãŒããŒã®ãã¹ãããŒãã¬ãžã¹ããªã«ãã£ãã·ã¥ãããŠããŸããããšããWindowsèŠåã§ãã¯ãããã¯ãªãã¯ããŠãã·ã³ã«ã¢ã¯ã»ã¹ããŸãã ãã¹ãŠãããŸããã£ãå Žåã次ã®ããã«ãªããŸãã

pythonã§ãã¹ãŠãæ£åžžãã©ããã確èªããŸãïŒããã©ã«ãã§ã¯ãAWSã«ãã§ã«ã€ã³ã¹ããŒã«ãããŠããŸãïŒãã³ã³ãœãŒã«ã§ãpythonããšå ¥åããEnterããŒãæŒããŸãã Pythonã³ã³ãœãŒã«ã«å ¥ã£ããã1 + 1ãšå ¥åããŠEnterãããäžåºŠæŒããŸãã Pythonã³ã³ãœãŒã«ãçµäºããã«ã¯ãCtrl + DãæŒããŸãã

Yandex MetricsããããŒã¿ãããŠã³ããŒãããæåŸã®æé ã¯ãèªèšŒããŒã¯ã³ã§ãã
1. Yandexã¢ããªã±ãŒã·ã§ã³ãäœæããããŒãžã«ç§»åããŸãoauth.yandex.ru/client/new
2.ã¢ããªã±ãŒã·ã§ã³ã«ååãä»ããYandexã¡ããªã¯ã¹ã®æš©å©ãã£ãŒã«ãã§ãçµ±èšãåä¿¡ããä¿¡é Œã§ããã«ãŠã³ã¿ãŒãã©ã¡ãŒã¿ãŒãèªã¿åããŸãããéžæããŸãã

äœæãããã¢ããªã±ãŒã·ã§ã³ãšãã®IDã®ãªã¹ãã¯ãç»é²æžã¿ã®ã¢ããªã±ãŒã·ã§ã³ããŒãžoauth.yandex.ruã§ç¢ºèªã§ããŸãïŒãã®äŸã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã¯ãé±æ¬¡ã¬ããŒãããšåŒã°ããŸãïŒã

ããŒã¯ã³ãååŸããã«ã¯ãIDãå¿ èŠã§ãã æåŸã®client_idãã©ã¡ãŒã¿ãŒã®ãã©ãŠã¶ãŒã§ãããã°ããŒã¯ã³ãåä¿¡ããããã«ããã®å€ããªã³ã¯ã«çœ®ãæããŸãïŒ oauth.yandex.ru/authorize?response_type=token& client_id =04d488...87aacb
ãã®çµæãYandex Metricãžã®ãã¹ãŠã®ãªã¯ãšã¹ãã§äœ¿çšããèªèšŒããŒã¯ã³11daf5 ... 516dãååŸããŸãã

æè¡éšåãæºåããé·ãããã»ã¹ãå®äºããŸããã 次åã¯ééããå¿ èŠã¯ãããŸããã Yandex Metricã®ããŒã¿ã«æåã®ãHello worldããæžã蟌ã¿ãŸãã ã€ã³ã¹ã¿ã³ã¹ã®ã¹ã¯ãªãããç·šéããã«ã¯ãããŸããŸãªæ¥ç¶ãšãšãã£ã¿ãŒã䜿çšããããã³ã³ãœãŒã«ã§äœæ¥ããã ãã§ãã Windowsã§ã¯ãåçŽãªã¹ã¯ãªããã®ããã«ãWinSCPïŒhttps://winscp.net/eng/docs/lang:ruïŒãšçµã¿èŸŒã¿ã®ã¡ã¢åž³ã䜿çšã§ããŸãã
ã€ã³ã¹ã¿ã³ã¹ã«æ¥ç¶ããåŸïŒPuttyã䜿çšããŠè¡ã£ãæäœãšåæ§ïŒã/ home / ubuntuãã©ã«ããŒã«æ ŒçŽãããŸãã å¥ã®ãã©ã«ããŒãyamãïŒF7ã䜿çšã§ããŸãïŒãäœæãããã¡ã€ã«ãtest.pyãïŒShift + F4ïŒãäœæããŸãã 次ã«ãYandex Metrika APIããã¥ã¡ã³ãtech.yandex.ru/metrika/doc/api2/api_v1/intro-docpageã«åŸã£ãŠãæšæ¥ãåºåžãã¬ããŒãã®ããŒã¿ãã¢ããããŒãããŠããã¹ãŠãæ©èœããããšã確èªããŸãã

ã©ã€ãã©ãªãrequestsããšãjsonããã€ã³ããŒãããŠãAPIããã³JSON圢åŒãžã®ãªã¯ãšã¹ããåŠçããŸãã åŒçšç¬Šã§å²ãŸããatokenå€æ°ã§ã¯ã以åã«åãåã£ãèªèšŒããŒã¯ã³ã瀺ããŸãã ãã®ã³ãŒãããã¡ã€ã«ãtest.pyãã«ã³ããŒããŠä¿åããŸãã
import requests import json atoken = 'insert token here' r = requests.get('https://api-metrika.yandex.ru/stat/v1/data?&id=21075004&accuracy=full&date1=yesterday&date2=yesterday&metrics=ym:s:visits&oauth_token=' + atoken) parsed = json.loads(r.text) print json.dumps(parsed, indent=4, sort_keys=True)
è¡r = requests.getïŒ...ïŒã®ãidããã©ã¡ãŒã¿ãŒã§ãããŒã¿ãååŸããã«ãŠã³ã¿ãŒçªå·ãæå®ããå¿ èŠããããŸãã ååã®æšªã«ããã«ãŠã³ã¿ãŒã®ãªã¹ãïŒ https://metrika.yandex.ru/list ïŒã«ãããŸãã 粟床ãã©ã¡ãŒã¿ãŒã¯ãWebã€ã³ã¿ãŒãã§ãŒã¹ã®ã粟床ãã¹ã©ã€ããŒã«å¯Ÿå¿ããdate1ãšdate2ã¯ã¢ããããŒãæéãã¡ããªãã¯ã¯ã¡ããªãã¯ïŒåïŒã§ãã ãŸã ãã£ã¡ã³ã·ã§ã³ïŒãã£ã¡ã³ã·ã§ã³ïŒããããŸãããåŸã§äŸ¿å©ã«ãªããŸãã Yandex Metricã¯æ¢è£œã®ãã³ãã¬ãŒããæäŸããŸããã¯ãšãªæååtech.yandex.ru/metrika/doc/api2/api_v1/presets/preset_traffic-docpageã§ãããã眮ãæããããšãã§ããŸã
json.loadsã¯ãYandex.Metricaããåãåã£ãJSONå¿çããå¿ èŠãªèŠçŽ ïŒãã®å Žåã¯æšæ¥ã®èšªåæ°ïŒãç°¡åã«éžæã§ããé åã«å€æããŸãã è¡å°å·json.dumpsïŒ...ïŒã¯ããã人éçãªåœ¢åŒã§APIå¿çã瀺ããŸãã
ã¹ã¯ãªãããå®è¡ããŸããPuttyãŸãã¯ã¿ãŒããã«ã§ãpython test.pyããšå ¥åããŸãã æåïŒ

ãã®é åãã489ãæœåºããã«ã¯ïŒã€ãŸããPythonã§ã¯ãèŸæžãã§ãïŒããã®éå±€æ§é ãäžããäžã«èŠãŠãããŸãã
1.éå±€ã®æåã®èŠçŽ 㯠'data'èŠçŽ ã§ãæåã«äœ¿çšãããŸãïŒ['data']
2.次ã«è§æ¬åŒ§ãæ¥ãŠããªã¹ããå§ãŸããŸãã ç§ãã¡ã®å Žåãããã¯1ã€ã®èŠçŽ ã®ãªã¹ãã§ããã€ãŸãã[0]ãèšå®ããŸã
3.次ã«ã2ã€ã®èŠçŽ ããã£ã¡ã³ã·ã§ã³ããšãã¡ããªãã¯ãããããŸãã ['metrics']ãéžæããŸã
3.æåŸã«ããã¡ããªãã¯ããã£ãŒã«ãã«ãåã³1ã€ã®èŠçŽ ã®ã·ãŒã
ãããã£ãŠãæšæ¥ã®èšªåæ°489.0ã®ã¢ãã¬ã¹ã¯['data'] [0] ['metrics'] [0]ã«ãªããŸãã ã¹ã¯ãªããã«æ¬¡ã®è¡ãè¿œå ããŸãã
解æãããå°å·['data'] [0] ['metrics'] [0]
åèµ·åã®çµæãæšæ¥ã®èšªåæ°ãæåŸã«è¡šç€ºãããŸãã
OKããããã«ã¡ã¯äžçãã¯æ¥œããã§ãã 次ã«ãããå®çšçãªãã®ãã¢ã³ããŒãããŸãã ããšãã°ããµã€ãã®ãªã¹ãã®éå»1é±éã®æ¥åäœã®èšªåããã³ãã¡ã€ã«ãžã®æžã蟌ã¿ã æåã«ãéå»1é±éã«1ã€ã®ãµã€ãã«ã¢ã¯ã»ã¹ããæ¥ãŸã§ã«ãã¡ã€ã«ã«æžã蟌ã¿ãŸãã
import requests import json atoken = '' r = requests.get('https://api-metrika.yandex.ru/stat/v1/data?&id=21075004&accuracy=full&date1=2015-08-10&date2=2015-08-16&group=day&dimensions=ym:s:date&metrics=ym:s:visits&sort=ym:s:date&oauth_token=' + atoken) parsed = json.loads(r.text) print json.dumps(parsed, indent=4, sort_keys=True)
çãã¯æ¬¡ã®ããã«ãªããŸãã

ããã§ããã¹ãŠã®æ¥ä»ã埪ç°ãããŠãæ¯æ¥ã®èšªåæ°ãååŸããå¿ èŠããããŸãã ãã®æ§é ã¯ãããŒãµãŒ['data']ã§ã·ãŒãã調ã¹ãå¿ èŠãããããšã瀺ããŠããŸãã ãã®ã·ãŒãã®åèŠçŽ ãèŠãŠã¿ãŸãããã ãããè¡ãã«ã¯ãã¹ã¯ãªããã®æåŸã«ã«ãŒããè¿œå ããŸãã
for day in parsed['data']: print day
PythonãåããŠäœ¿çšããå Žåã¯ã 'print day'ïŒã¿ããŸãã¯ããã€ãã®ã¹ããŒã¹ïŒã®åã«ã€ã³ãã³ãã«æ³šæããŠãã ããã ãã®ã€ã³ãã³ãã¯ããµã€ã¯ã«ã®éå§ãšçµäºã決å®ããŸãã 以äžãéå§ããŸãã

æ¥ä»ãšèšªåæ°ãååŸããæ¹æ³ãããæ確ã«ãªããŸããã ãå°å·æ¥ãã®ä»£ããã«ã以äžãå ¥åããŸãã
print str(day['dimensions'][0]['name']) + '\t' + str(day['metrics'][0])

è€æ°ã®ãããžã§ã¯ãã®ããŒã¿ãã¢ããããŒããããã¹ãŠããã¡ã€ã«ã«æžã蟌ãæ©èœãè¿œå ããŠã蚪åã®ãã€ã³ããã«ã³ãã«çœ®ãæããŸãã Excelã«ãšã¯ã¹ããŒãããå Žåããããè¡ãå¿ èŠã¯ãããŸããã§ããã listOfSitesã·ãŒãã®äŸã§ã¯ãä»»æã®æ°ã®ãããžã§ã¯ãã«ãŠã³ã¿ãŒã眮ãæããããšãã§ããŸããããã§ã¯ãããšãã°2ã€ã®åäžã®ãã®ããããŸãã ãã¡ã€ã«ãweekly_data.txtãã¯ãã¹ã¯ãªãããå®è¡ããããã³ã«äžæžããããŸãã
import requests import json listOfSites = ['21075004', '21075004'] f = open('weekly_data.txt', 'w') atoken = '' for site in listOfSites: r = requests.get('https://api-metrika.yandex.ru/stat/v1/data?&id=' + site + '&accuracy=full&date1=2015-08-10&date2=2015-08-16&group=day&dimensions=ym:s:date&metrics=ym:s:visits&sort=ym:s:date&oauth_token=' + atoken) parsed = json.loads(r.text) print json.dumps(parsed, indent=4, sort_keys=True) for day in parsed['data']: print str(day['dimensions'][0]['name']) + '\t' + str(day['metrics'][0]) f.write(str(day['dimensions'][0]['name']) + '\t' + str(day['metrics'][0]).replace('.', ',') + '\n') f.close()
ãã®ãããéå§åŸãlistOfSitesã«ãªã¹ããããŠãããµã€ããžã®æ¯æ¥ã®ã¢ã¯ã»ã¹ã§ãã¡ã€ã«ãweekly_data.txtããååŸããå¿ èŠããããŸãïŒãã®äŸã§ã¯ãæ°åã¯2åç¹°ãè¿ãããŸãïŒãããã¯Excelã«ç°¡åã«ã³ããŒã§ããŸãã ãŸãã¯ãå ±åããŠããä»ã®ããŒã«ïŒ

äœæ¥ãå®äºããããAWS管çã³ã³ãœãŒã«ã«ç§»åããã€ã³ã¹ã¿ã³ã¹ã§ãããŠã¹ã®å³ãã¿ã³ã䜿çšããŠã[ã€ã³ã¹ã¿ã³ã¹ã®ç¶æ -åæ¢]ãéžæããŸãã 次åã¯ãé·ãã»ããã¢ããæé ãå®è¡ããå¿ èŠã¯ãããŸããã ã€ã³ã¹ã¿ã³ã¹ç¶æ -Startãéžæããã ãã§ãæ°åã§ããã«ã³ãŒãã®æäœãéå§ã§ããŸãã

ãã®ç°¡åãªã¢ãããŒããšYandex Metricsã®ããã¥ã¡ã³ãã䜿çšããŠãã»ãŒãã¹ãŠã®ã¢ããããŒããæ§æã§ããŸãã ãã®æ瀺ã«ãããããŒã¿ãã¢ããããŒãããéã«å€ãã®æéãšåŽåãç¯çŽãããããšãé¡ã£ãŠããŸãã