import jsonpath
def method(self, url):
statu = True
for _ in xrange(self.__retry_num):
try:
self.LOG.info('请求url[{}],第{}次'.format(url, _ + 1))
res = self.request.post(url=url, proxies=self.proxy, data=json.dumps(body, ensure_ascii=False),
timeout=self.__timeout)
if res.status_code != 200:
raise Exception("请求状态码出错,{}".format(str(res.content)))
# 正文判断 名字不同
response = json.loads(res.content)
data = jsonpath.jsonpath(response, "$.content") # 得到数据集
if not data or not data[0]: # 解析不到或解析结果为空 均当做搜不到即该数据已在官网找不到
statu = False
else:
productCode = code[3]
registeredDate = code[4]
for result in data[0]:
productCodeResult = result["productCode"]
if registeredDate == self.timeStamp(registeredDateResult).replace("-", "") and productCode == productCodeResult:
return True
else:
return False
except Exception:
self.LOG.error(traceback.format_exc())
self.proxy = self.get_proxy()
finally:
time.sleep(self.__wait_seconds)
else:
# 重试多次仍失败则该数据视为无法请求
statu = False
return statu
#python时间戳转换
def timeStamp(self, timeNum):
timeStamp = float(timeNum / 1000)
timeArray = time.localtime(timeStamp)
otherStyleTime = time.strftime("%Y-%m-%d", timeArray)
return otherStyleTime
python请求重试与时间戳转换
最新推荐文章于 2023-11-06 11:26:18 发布