Browser_ads_kw.py 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. from typing import NoReturn
  2. from selenium import webdriver
  3. import time
  4. import networkx as nx
  5. import dataset
  6. import pickle
  7. import traceback
  8. import codecs
  9. from selenium.webdriver.common import keys
  10. from selenium.webdriver.common.keys import Keys
  11. import sys
  12. import os
  13. import time
  14. import re
  15. import pandas as pd
  16. from browser_common import JBrowser
  17. import datetime
  18. import dataset
  19. #db = dataset.connect('mysql://choozmo:pAssw0rd@db.ptt.cx:3306/hhh?charset=utf8mb4')
  20. def get_designer_statistics():
  21. global db
  22. jb=JBrowser()
  23. data=""
  24. jb.set_profile_path("Profile 7")
  25. # googleurl='https://ads.google.com/aw/keywordplanner/'
  26. # googleurl='https://ads.google.com/aw/overview?ocid=600024232&euid=459838964&__u=6055300436&uscid=600024232&__c=2195332968&authuser=0&subid=ALL-zh-TW-et-g-aw-c-home-awhp_xin1_signin!o2'
  27. # googleurl='https://ads.google.com/aw/keywordplanner/home?ocid=600024232&euid=459838964&__u=6055300436&uscid=600024232&__c=2195332968&authuser=0&subid=ALL-zh-TW-et-g-aw-c-home-awhp_xin1_signin%21o2'
  28. googleurl='https://ads.google.com/aw/keywordplanner/home?ocid=600024232&euid=459838964&__u=6055300436&uscid=600024232&__c=2195332968&authuser=0&subid=ALL-zh-TW-et-g-aw-c-home-awhp_xin1_signin%21o2'
  29. # googleurl='https://ads.google.com/aw/overview?ocid=732105824&euid=459838964&__u=6055300436&uscid=732105824&__c=5922164576&authuser=0'
  30. jb.get(googleurl)
  31. driver=jb.get_driver()
  32. driver.refresh()
  33. time.sleep(5)
  34. driver.refresh()
  35. time.sleep(15)
  36. # elmts=driver.find_elements_by_xpath("//div[@role='button' and contains(text(),'尋找新的關鍵字')]")
  37. elmts=driver.find_elements_by_xpath("//span[contains(text(),'尋找新的關鍵字')]/../..")
  38. print(elmts)
  39. for elmt in elmts:
  40. print('found')
  41. print(elmt)
  42. print('clicking....')
  43. webdriver.ActionChains(driver).move_to_element(elmt).perform()
  44. webdriver.ActionChains(driver).move_to_element(elmt).click().perform()
  45. time.sleep(15)
  46. elmt=driver.find_element_by_xpath("//input[contains(@class,'search-input')]")
  47. # elmt.send_keys("紓困")
  48. elmt.send_keys("疫苗")
  49. time.sleep(3)
  50. elmt=driver.find_element_by_xpath("//div[contains(text(),'取得結果')]/..")
  51. print('clicking....')
  52. webdriver.ActionChains(driver).move_to_element(elmt).perform()
  53. webdriver.ActionChains(driver).move_to_element(elmt).click().perform()
  54. time.sleep(5)
  55. elmt=driver.find_element_by_xpath("//span[contains(text(),'關鍵字檢視畫面')]/../../..")
  56. print('clicking....')
  57. webdriver.ActionChains(driver).move_to_element(elmt).perform()
  58. webdriver.ActionChains(driver).move_to_element(elmt).click().perform()
  59. # elmt=driver.find_element_by_xpath("//span[contains(text(),'分組檢視畫面')]/../..")
  60. # elmt=driver.find_element_by_xpath("//span[contains(text(),'分組檢視畫面')]")
  61. try:
  62. time.sleep(4)
  63. elmt=driver.find_element_by_xpath("//material-select-item[contains(@aria-label,'分組檢視畫面')]")
  64. except:
  65. print('except')
  66. traceback.print_exc()
  67. print('clicking....')
  68. webdriver.ActionChains(driver).move_to_element(elmt).perform()
  69. webdriver.ActionChains(driver).move_to_element(elmt).click().perform()
  70. # try:
  71. # time.sleep(8)
  72. #
  73. # elmt=driver.find_element_by_xpath("//span[contains(text(),'分組檢')]/../..")
  74. # except:
  75. # print('except')
  76. # traceback.print_exc()
  77. print('clicking....')
  78. time.sleep(40)
  79. print('after sleep')
  80. # elmts=driver.find_elements_by_xpath("//div[@class='keyword-text _ngcontent-owh-97']")
  81. elmts=driver.find_elements_by_xpath("//zippy-icon/..//keyword-text")
  82. for elmt in elmts:
  83. print(elmt.text)
  84. data+=elmt.text+"\n"
  85. fw=codecs.open('c:/tmp/out.txt','w','utf-8')
  86. fw.write(data)
  87. fw.close()
  88. # print(elmt)
  89. time.sleep(9999)
  90. return 'ok'
  91. get_designer_statistics()