def get_agencys(city, page_index=1): ''' 获取58全职搜索保险代理人信息 * 'city_type' 城市类型 * 'page_index' 当前页码 ''' city_type = city['id'] hp.print_partition(u'解析城市:%s-%s-%s,保险代理人的工作' % (city['province'], city['city'], city['id'])) # 构造接口url url = __agencys_url.format(city_type, page_index) print u'工作地址:%s' % url try: # html = rq.get_cookie( # url, # headers={ # "User-agent": # "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36", # "Referer": # url # }) html = rq.get(url) except Exception, e: print e return
def douyu_rank(rankName, statType): ''' 斗鱼主播数据抓取 [数据地址](https://www.douyu.com/directory/rank_list/game) * `rankName` anchor(巨星主播榜),fans(主播粉丝榜),haoyou(土豪实力榜),user(主播壕友榜) * `statType` day(日),week(周),month(月) ''' if not isinstance(rankName, ERankName): raise Exception("rankName 类型错误,必须是ERankName枚举") if not isinstance(statType, EStatType): raise Exception("statType 类型错误,必须是EStatType枚举") rankName = '%sListData' % rankName.name statType = '%sListData' % statType.name # 请求获取html源码 .replace('\r\n', '') rs = rq.get( "https://www.douyu.com/directory/rank_list/game", headers={'User-Agent': 'Mozilla/5.0'}) # 正则解析出数据 mt = re.search(r'rankListData\s+?=(.*?);', rs, re.S) if (not mt): print u"无法解析rankListData数据" return grps = mt.groups() # 数据转json rankListDataStr = grps[0] rankListData = json.loads(rankListDataStr) dayList = rankListData[rankName][statType] # 修改排序 dayList.sort(key=lambda k: (k.get('id', 0)), reverse=False) return dayList
def getComment(questionNum): url = u'http://www.bxd365.com/qa/%s.html' % questionNum print u"开始解析:%s" % url try: html = rq.get(url) except Exception, e: print e return
def get_addressId(self): url = '/supplier/getReceivingAddress?dealerId=%s' % supplierId response = request.get(url) try: response['msg'] == '请求成功' except Exception: raise response addressId = response['data'][0]['id'] return addressId
def get_ageGroup(self): url = '/dictionary/getByType/age_group' response = request.get(url) try: response['msg'] == '请求成功' except Exception: raise response ageGroup = response['data'][0]['code'] return ageGroup
def get_procedureSite(self): url = '/dictionary/getByType/procedure_site' response = request.get(url) try: response['msg'] == '请求成功' except Exception: raise response procedureSite = response['data'][0]['id'] return procedureSite
def get_manufacturerId(self): url = '/formBaseData/allBrands' response = request.get(url) try: response['msg'] == '请求成功' except Exception: raise response manufacturerId = response['data'][0]['id'] return manufacturerId
def suo(url): ''' suo.im 短链 ''' url = 'http://suo.im/api.php?format=json&url={}'.format( url.encode('utf-8')) json_str = rq.get(url) if not json_str: return json_data = json.loads(json_str) return json_data['url']
def get_warehouse(self): url = '/warehouse/getAll' response = request.get(url) try: assert response['msg'] == '请求成功' except Exception: raise response # 目前有库存的是丽都仓 for i in response['data']: if i['warehouseName'] == '丽都仓': warehouseId = i['id'] return warehouseId
def analysis_job_data(job_url): ''' 解析job详情页面里的pagenum数据 ''' if job_url is None: print u'工作详情地址为空,略过' return print 'job_url=%s' % job_url try: # html = rq.get_cookie(job_url, cookie_file_name=get_cookie_name()) html = rq.get(job_url) except Exception, e: print e return
def douyu_room(romm_id): ''' 主播房间信息解析 [数据地址](https://www.douyu.com/xxx) 'romm_id' 主播房号 ''' rs = rq.get(("https://www.douyu.com/%s" % romm_id), headers={'User-Agent': 'Mozilla/5.0'}) mt = re.search(r'\$ROOM\s+?=\s+?({.*?});', rs, re.S) if (not mt): print u"无法解析ROOM数据" return grps = mt.groups() roomDataStr = grps[0] roomData = json.loads(roomDataStr) return roomData
def test_case_01(self, get_api, common_params): with allure.step("第一步:发送请求,获取响应实体"): response = request.get(url=get_api, params=common_params) result = response.json() allure.attach(response.url, "请求", allure.attachment_type.TEXT) allure.attach(response.text, "响应", allure.attachment_type.TEXT) with allure.step("第二步:运行断言器"): if validate.assert_code(response.status_code, 200): # 1. 首次生成 case,需要运行一次获取到 response,生成 validator validate.gen_validator(file_path, result) # 2. 生成 validator 成功后,取消掉注释,即可正常运行断言器 validate.run_validator(validator, result)
def check(adhocOrderId): response = request.get('/adhocOrder/getDetailByOrderId?orderId=%s' % adhocOrderId) goodsList = response['data']['childUiList'][0]['detailBeanUiList'] toolsList = response['data']['childUiList'][0]['toolsKitUiBeans'] deliveryMode = response['data']['adhocOrderUiBean']['deliveryMode'] warehouseId = response['data']['adhocOrderUiBean']['sourceWarehouse'] goodsId = jsonpath.jsonpath(goodsList, '$..[*].goodsId') quantity = jsonpath.jsonpath(goodsList, '$..[*].quantity') kitTemplateId = jsonpath.jsonpath(toolsList, '$..[*].id') goods = [] tools = [] if goodsId: i = 0 while i < len(goodsId): dict = { "goodsId": goodsId[i], "quantity": quantity[i], } goods.append(dict) i += 1 if kitTemplateId: j = 0 while j < len(kitTemplateId): dict1 = { "kitTemplateId": kitTemplateId[j], "quantity": 1 } tools.append(dict1) j += 1 body = { "detail": [ { "deliveryMode": deliveryMode, "goodsDetailUiBeans": goods, "toolsDetailUiBeans": tools, "warehouseId": warehouseId } ], "id": adhocOrderId } else: body = { "detail": [ { "deliveryMode": deliveryMode, "goodsDetailUiBeans": goods, "warehouseId": warehouseId } ], "id": adhocOrderId } elif kitTemplateId: j = 0 while j < len(kitTemplateId): dict1 = { "kitTemplateId": kitTemplateId[j], "quantity": 1 } tools.append(dict1) j += 1 body = { "detail": [ { "deliveryMode": deliveryMode, "toolsDetailUiBeans": tools, "warehouseId": warehouseId } ], "id": adhocOrderId } else: body = { "detail": [ { "deliveryMode": deliveryMode, "warehouseId": warehouseId } ], "id": adhocOrderId } check = request.put_body('/adhocOrder/accept', body=body) return check
def get_goodsInfo(self): url = '/goods/findGoodsList?pageNum=0&pageSize=50&manufacturerId=1' response = request.get(url) goodsId = response['data']['rows'][0]['id'] supplierId = response['data']['rows'][0]['supplierId'] return goodsId, supplierId
today = datetime.date.today() tomorrow = today + datetime.timedelta(days=1) twoDaysAfter = today + datetime.timedelta(days=2) yesterday = today - datetime.timedelta(days=1) today_stamp = int(time.mktime(today.timetuple())) * 1000 tomorrow_stamp = int(time.mktime(tomorrow.timetuple())) * 1000 twoDaysAfter_stamp = int(time.mktime(twoDaysAfter.timetuple())) * 1000 yesterday_stamp = int(time.mktime(yesterday.timetuple())) * 1000 # 获取供应商列表 # list = request.get('/supplier/dropDownSupplierList') # 获取供应商id # supplierId = list['data'][0]['id'] supplierId = 1 # 获取手术部位 site = request.get('/dictionary/getByType/procedure_site') siteId = site['data'][0]['id'] # 获取品牌 brands = request.get('/manufacturer/allBrands') brandId = brands['data'][0]['id'] # 小程序创建临调单 def appCreateAdhocOrder(goodsId, goodsQuantity=1, kitTemplateId=None, ageGroup='adult', gender='male', goodsSupplierId=supplierId, supplierId=supplierId, hospitalName='测试',
def get_toolsInfo(self): url = '/kitTemplate/findToolsKitList?pageNum=0&pageSize=50&manufacturerId=1' response = request.get(url) kitTemplateId = response['data']['rows'][0]['id'] toolsSupplierId = response['data']['rows'][0]['supplierId'] return kitTemplateId, toolsSupplierId
def finishPick(pickOrderId): # 根据拣货单id查询详情 detail = request.get('/pickOrder/detail/%s' % pickOrderId) assert detail['msg'] == '请求成功' goodsDetail = detail['data']['goodsDetail'] kitDetail = detail['data']['kitDetail'] toolsKitDetail = detail['data']['toolsKitDetail'] # 物资列表 for goods in goodsDetail: # 物资udi udi = goods['udi'] new_udi = re.sub(r'\D', "", udi) # 物资编号 materialCode = goods['materialCode'] # 货位号 storageLocationId = goods['storageLocationId'] # 物资待拣数量 unpickedQuantity = int(goods['quantity']) - int( goods['pickedQuantity']) # 扫码获取批号信息 gs1Decode = request.get('/goods/gs1Decode?code=%s' % new_udi) # 序列号 serialNumber = gs1Decode['data']['serialNumber'] # 物资id goodsId = gs1Decode['data']['goodsId'] # 批号 lotNum = gs1Decode['data']['lotNum'] body = { 'goodsId': goodsId, 'lotNum': lotNum, 'pickOrderId': pickOrderId, 'serialNumber': serialNumber, 'storageLocationId': storageLocationId } # 商品待拣货数量大于1时需多次拣货 num = 0 while num < unpickedQuantity: pick_response = request.put_body('/pickOrder/picking', body=body) assert pick_response['msg'] == '请求成功' num += 1 log.info('物资%s拣货完成' % materialCode) # 套包列表 TODO for kit in kitDetail: print(kit) # 工具包列表 for tools in toolsKitDetail: # 工具包条码 operatorBarcode = tools['operatorBarcode'] # kitStockId kitStockId = tools['kitStockId'] # 货位号 storageLocationId = tools['storageLocationId'] # 物资待拣数量 unpickedQuantity = int(tools['quantity']) - int( tools['pickedQuantity']) body = { 'kitStockId': kitStockId, 'pickOrderId': pickOrderId, 'storageLocationId': storageLocationId } num = 0 while num < unpickedQuantity: pick_response = request.put_body('/pickOrder/picking', body=body) assert pick_response['msg'] == '请求成功' num += 1 log.info('工具包%s拣货完成' % operatorBarcode) # 完成拣货 body2 = { 'pickOrderId': pickOrderId, 'imagePath': ['/file/2020/11/16/ac110bd6-ff1f-41ed-b645-a570a8c34df9/提货委托书.jpg'] } finishPick = request.put_body('/pickOrder/pickFinished', body=body2) log.info('拣货单完成 %s' % finishPick) return finishPick