helper.py 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. import datetime
  2. import hashlib
  3. import json
  4. import platform
  5. # import time
  6. import requests
  7. from requests_futures.sessions import FuturesSession
  8. # from scrapy import Selector
  9. # from selenium import webdriver
  10. from hgg070_spider.conf.uid import UID as u_id, UID
  11. # from selenium.webdriver import FirefoxOptions
  12. fs_session = FuturesSession()
  13. class Helper(object):
  14. @staticmethod
  15. def changetime(params):
  16. if params.endswith('p'):
  17. p_time = params[-6:-1]
  18. if p_time.startswith('12'):
  19. us_time = params[:-1] + ":00"
  20. # print(us_time)
  21. # start_time = datetime.datetime.strptime(us_time, "%Y-%m-%d %H:%M:%S") + datetime.timedelta(
  22. # hours=12)
  23. # match_date = start_time.strftime("%Y-%m-%d %H:%M:%S").split(' ')[0]
  24. # match_time = start_time.strftime("%Y-%m-%d %H:%M:%S").split(' ')[1]
  25. else:
  26. params = params[:-1] + ':00'
  27. us_time = datetime.datetime.strptime(params, "%Y-%m-%d %H:%M:%S") + datetime.timedelta(
  28. hours=12)
  29. # start_time = us_time + datetime.timedelta(hours=12)
  30. # match_date = start_time.strftime("%Y-%m-%d %H:%M:%S").split(' ')[0]
  31. # match_time = start_time.strftime("%Y-%m-%d %H:%M:%S").split(' ')[1]
  32. us_time = us_time.strftime("%Y-%m-%d %H:%M:%S")
  33. # pass
  34. else:
  35. us_time = params[:-1] + ':00'
  36. # start_time = datetime.datetime.strptime(params, "%Y-%m-%d %H:%M:%S") + datetime.timedelta(
  37. # hours=12)
  38. # match_date = start_time.strftime("%Y-%m-%d %H:%M:%S").split(' ')[0]
  39. # match_time = start_time.strftime("%Y-%m-%d %H:%M:%S").split(' ')[1]
  40. return us_time
  41. @staticmethod
  42. def get(url, params):
  43. return requests.get(url, data={"data": json.dumps(params), "token": u_id['token']}, timeout=30)
  44. @staticmethod
  45. def post(url, params):
  46. return requests.post(url, data={"data": json.dumps(params), "token": u_id['token']}, timeout=30)
  47. @staticmethod
  48. def async_post(url, params):
  49. try:
  50. # print(u_id['token'])
  51. data = fs_session.post(url, data={"data": json.dumps(params), "token": u_id['token']}).result()
  52. # data = fs_session.post(url, data={"data": json.dumps(params), "token": "agxrI115617094865d15cbaecca9f"}, timeout=30).result()
  53. if data:
  54. response_data = json.loads(data.content.decode('utf-8'))
  55. # print(response_data)
  56. # token异常重新获取
  57. if response_data.get('status') == 10032:
  58. token = Helper.get_token()
  59. sys = platform.system()
  60. if sys == 'Windows':
  61. file_path = os.path.abspath(os.path.join(os.getcwd(), "..")) + "\\conf\\uid.py"
  62. else:
  63. file_path = os.path.abspath(os.path.join(os.getcwd(), "..")) + "/hgg070_spider/conf/uid.py"
  64. if os.path.exists(file_path):
  65. fs = open(file_path, 'w+')
  66. UID['token'] = token
  67. fs.write('UID={}'.format(UID))
  68. fs.close()
  69. data = fs_session.post(url, data={"data": json.dumps(params), "token": u_id['token']}).result()
  70. # data = fs_session.post(url, data={"data": json.dumps(params), "token": u_id['token']})
  71. return data.content.decode('utf-8')
  72. # return data
  73. except requests.exceptions.RequestException as e:
  74. print(e)
  75. @staticmethod
  76. def get_zip_data(list1, list2):
  77. if list1 and list2:
  78. if isinstance(list1, list) and isinstance(list2, list):
  79. return dict(zip(list1, list2))
  80. @staticmethod
  81. def get_token():
  82. cpath = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
  83. with open(cpath + '/conf/settings.json', 'r', encoding='utf8') as f:
  84. data = json.load(f)
  85. token_url = data['token_url']
  86. username1 = data['username1']
  87. password1 = data['password1']
  88. r = requests.post(token_url, data={'account': username1, 'password': password1})
  89. token = r.json()['data']['token']
  90. return token
  91. @staticmethod
  92. def genearte_MD5(params):
  93. # 创建md5对象
  94. hl = hashlib.md5()
  95. hl.update(params.encode(encoding='utf-8'))
  96. # print('MD5加密前为 :' + params)
  97. # print('MD5加密后为 :' + hl.hexdigest())
  98. return hl.hexdigest()
  99. if __name__ == '__main__':
  100. import os
  101. print(os.path.abspath(os.path.join(os.getcwd(), "..")) + "\\conf\\uid.py")
  102. print(os.path.abspath(__file__))