bugly.py 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. from browsermobproxy import Server
  2. from selenium import webdriver
  3. import time
  4. import os
  5. from selenium.webdriver.chrome.options import Options
  6. # configuration
  7. #browsermobPath = './browsermob-proxy-2.1.4/bin/browsermob-proxy'
  8. browsermobPath = 'D:\\fyf\\tool\\browsermob-proxy-2.1.4\\bin\\browsermob-proxy'
  9. username = '972360526'
  10. password = '61241623FYFzwq'
  11. tokenFile = os.getcwd()+'./token.conf'
  12. cookiesFile = os.getcwd()+'./cookie.conf'
  13. chromedriver = os.getcwd()+"./chromedriver.exe"
  14. def writeResult(filePath, fileContext):
  15. if os.path.exists(filePath):
  16. os.remove(filePath)
  17. f = open(filePath, 'w')
  18. f.write(fileContext)
  19. print(fileContext)
  20. f.close()
  21. return
  22. def GetCookieAndToken():
  23. server = Server(browsermobPath)
  24. server.start()
  25. proxy = server.create_proxy()
  26. profile = webdriver.FirefoxProfile()
  27. profile.set_proxy(proxy.selenium_proxy())
  28. chrome_options = Options()
  29. chrome_options.add_argument('--ignore-certificate-errors')
  30. chrome_options.add_argument('--proxy-server={0}'.format(proxy.proxy))
  31. os.environ["webdriver.chrome.driver"] = chromedriver
  32. driver = webdriver.Chrome(chromedriver,chrome_options=chrome_options)
  33. #driver = webdriver.PhantomJS(firefox_profile=profile,executable_path = geckodriverPah)
  34. proxy.new_har("bugly", options={"captureHeaders":True})
  35. driver.get("https://bugly.qq.com/v2/")
  36. time.sleep(3)
  37. driver.find_element_by_class_name("login_btn").click()
  38. time.sleep(3)
  39. driver.switch_to.frame("ptlogin_iframe")
  40. time.sleep(3)
  41. driver.find_element_by_id("switcher_plogin").click()
  42. time.sleep(3)
  43. driver.find_element_by_id("u").send_keys(username)
  44. time.sleep(3)
  45. driver.find_element_by_id("p").clear()
  46. driver.find_element_by_id("p").send_keys(password)
  47. time.sleep(3)
  48. driver.find_element_by_id("login_button").click()
  49. time.sleep(10)
  50. driver.find_element_by_xpath('//*[@id="root"]/div/div/div[2]/div/div/div/div[2]/table/tbody/tr/td[1]/div/div[1]/img').click()
  51. time.sleep(3)
  52. driver.find_element_by_xpath('//*[@id="root"]/div/div/div[2]/div/div[1]/div[2]/ul[2]/li/a').click()
  53. time.sleep(10)
  54. strCookies = ""
  55. strToken = ""
  56. cookies = driver.get_cookies()
  57. requestDict = proxy.har['log']['entries']
  58. for index in range(len(requestDict)):
  59. for k in requestDict[index]:
  60. if k == "request" and requestDict[index][k]['url'].find('v2/issueList')>=0:
  61. for inn in range(len(requestDict[index][k]['headers'])):
  62. for ik in requestDict[index][k]['headers'][inn]:
  63. if ik == 'name' and requestDict[index][k]['headers'][inn][ik]=='X-token':
  64. strToken = requestDict[index][k]['headers'][inn]['value']
  65. if ik == 'name' and requestDict[index][k]['headers'][inn][ik]=='Cookie' and requestDict[index][k]['headers'][inn]['value'].find('pt2gguin')>=0 and requestDict[index][k]['headers'][inn]['value'].find('bugly_session')>=0 and requestDict[index][k]['headers'][inn]['value'].find('referrer')>=0:
  66. strCookies = requestDict[index][k]['headers'][inn]['value']
  67. if strToken!="" and strCookies!="":
  68. break;
  69. writeResult(tokenFile,strToken)
  70. writeResult(cookiesFile,strCookies)
  71. server.stop()
  72. if __name__ == '__main__':
  73. GetCookieAndToken()