outlook_register.py 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #!/usr/bin/env python
  2. # -*- encoding: utf-8 -*-
  3. '''
  4. @Contact : liuyuqi.gov@msn.cn
  5. @Time : 2023/03/22 19:19:05
  6. @License : Copyright © 2017-2022 liuyuqi. All Rights Reserved.
  7. @Desc :
  8. '''
  9. from outlook_muti_register.register import Register
  10. from . import generate_email
  11. import os,sys,re,time,logging,random,requests,threading,queue,datetime
  12. from selenium import webdriver
  13. class OutlookRegister(Register):
  14. '''outlook register'''
  15. def __init__(self):
  16. '''init'''
  17. super(OutlookRegister, self).__init__()
  18. self.headers={
  19. 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
  20. 'accept-encoding': 'deflate',
  21. 'accept-language': 'en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7',
  22. 'cache-control': 'max-age=0',
  23. 'dnt': '1',
  24. 'sec-fetch-dest': 'document',
  25. 'sec-fetch-mode': 'navigate',
  26. 'sec-fetch-site': 'none',
  27. 'sec-fetch-user': '?1',
  28. 'upgrade-insecure-requests': '1',
  29. 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36',
  30. }
  31. self.code_url = 'http://apigateway.jianjiaoshuju.com/api/v_1/yzmCustomized.html'
  32. self.code_headers = {
  33. 'appCode': 'X',
  34. 'appKey': 'X',
  35. 'appSecret': 'X'
  36. }
  37. def run(self):
  38. self.logger.info('outlook register start...')
  39. # get proxy ip list
  40. consecutive_fail_number = 0
  41. try:
  42. for tp, ip_port in self.get_ip_list():
  43. if datetime.now().minute == 10 or consecutive_fail_number > 10:
  44. break
  45. print('Proxy: {}://{}'.format(tp, ip_port))
  46. driver = create_driver(tp, ip_port)
  47. register_success = start_register(driver)
  48. driver.close()
  49. if register_success:
  50. consecutive_fail_number = 0
  51. if not register_success:
  52. consecutive_fail_number += 1
  53. except Exception as e:
  54. print(e)
  55. schedule.every().minute.at(':10').do(run_driver)
  56. # generate account and pwd (read from file)
  57. generate_email.generate_email()
  58. # start register with proxy ip and chrome driver
  59. #
  60. try:
  61. for ip, port in self.get_ip_list():
  62. pass
  63. except Exception as e:
  64. pass
  65. finally:
  66. pass
  67. def get_ip_list(self):
  68. '''get proxy ip list'''
  69. pass
  70. def register_email(self):
  71. '''register email'''
  72. pass
  73. if __name__=='__main__':
  74. outlook_register = OutlookRegister()
  75. outlook_register.run()