GA_Keywords.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import traceback
  2. import copy
  3. import operator
  4. import codecs
  5. import sys
  6. import os
  7. import searchconsole
  8. import dataset
  9. import datetime
  10. import time
  11. fname=os.path.abspath(__file__)
  12. elmts=fname.split(os.path.sep)
  13. path2=os.path.sep.join(elmts[0:-1])
  14. keysdir=path2+os.path.sep+'keys'+os.path.sep
  15. account = searchconsole.authenticate(client_config=keysdir+'client_secret.json',credentials=keysdir+'credentials.json')
  16. webproperty = account['https://hhh.com.tw/']
  17. db = dataset.connect('mysql://choozmo:pAssw0rd@db.ptt.cx:3306/hhh?charset=utf8mb4')
  18. #db = dataset.connect('mysql://choozmo:pAssw0rd@127.0.0.1:3306/hhh?charset=utf8mb4')
  19. db.query('delete from hhh_weekly_keywords')
  20. table=db['hhh_weekly_keywords']
  21. records=[]
  22. def gen_report(weeknum,begindate,enddate):
  23. #report=webproperty.query.range('2021-01-01', '2020-01-02').dimension('page','query').get()
  24. report=webproperty.query.range(begindate, enddate).dimension('query').get()
  25. ts = time.time()
  26. sessionid=int(ts)
  27. for r in report:
  28. # print(r)
  29. query=r[0]
  30. clicks=int(r[1])
  31. impressions=r[2]
  32. ctr=r[3]
  33. position=r[4]
  34. if clicks >=200:
  35. records.append({'sessionid':sessionid,'query':query,'clicks':clicks,'impressions':int(impressions),'ctr':float(ctr),'position':float(position),'dt':datetime.datetime.now(),'weeknum':weeknum})
  36. gen_report('21','2021-05-24','2020-05-30')
  37. gen_report('22','2021-05-31','2020-06-06')
  38. gen_report('23','2021-06-07','2020-06-13')
  39. print('complete')
  40. db.begin()
  41. for r in records:
  42. try:
  43. table.insert(r)
  44. db.commit()
  45. except:
  46. db.rollback()
  47. print('done')