async def exec_data(item, goods, cids, semaphore): async with semaphore: goods_id = item.get('product_id') if not goods_id: return sell_num = int(item.get('sell_num')) shop_id = item.get('shop_id') goods_price = item.get('discount_price') / 100 goods_name = item.get('name') cid = item.get('third_cid') if not cids.__contains__(cid): cid = item.get('second_cid') goods_picture_url = item.get('img') goods_url = 'https://haohuo.snssdk.com/views/product/item?id=' + goods_id # goods = await Goods.find_one('goods_id=?', goods_id) if goods: # 修改 time_now = datetime.datetime.now().strftime("%Y-%m-%d") time_last_edit = goods.edit_time.strftime("%Y-%m-%d") # 较上次增量 add_num = sell_num - goods.sell_num goods.shop_id = shop_id goods.cid = cid goods.goods_name = goods_name goods.goods_url = goods_url goods.goods_picture_url = goods_picture_url goods.goods_price = goods_price if time_now != time_last_edit: goods.add_num = 0 elif add_num >= 0: goods.add_num = goods.add_num + add_num goods.sell_num = sell_num if goods.item_last_sell_num is None: goods.item_last_sell_num = goods.sell_num goods.edit_time = datetime.datetime.now() item_add_num = sell_num - goods.item_last_sell_num if item_add_num > 100: goods.item_last_sell_num = sell_num await goods.update() else: raise Exception("出错!数据库中没有查询到相应值") if item_add_num >= 100: goods_item = Goods_Item() goods_item.goods_id = goods.id goods_item.sell_num = sell_num goods_item.add_num = item_add_num await goods_item.save() if goods.add_num > 0: await Goods_Tmp.del_by('goods_id=?', goods.id) tmp = Goods_Tmp() tmp.goods_id = goods.id tmp.add_num = goods.add_num tmp.sell_num = goods.sell_num tmp.edit_time = datetime.datetime.now() await tmp.save()
async def parse_page(goods_id): item = await tools.get_goods_by_id(goods_id) if not item : return if not item.get('data'): return product_id = item.get('data').get('product_id') if not product_id: return sell_num = int(item.get('data').get('sell_num')) goods = await Goods.find_one('goods_id=?', goods_id) if goods: # 修改 time_now = datetime.datetime.now().strftime("%Y-%m-%d") time_last_edit = goods.edit_time.strftime("%Y-%m-%d") # 较上次增量 add_num = sell_num - goods.sell_num if time_now != time_last_edit: goods.add_num = 0 elif add_num >= 0: goods.add_num = goods.add_num + add_num goods.sell_num = sell_num if goods.item_last_sell_num is None: goods.item_last_sell_num = goods.sell_num goods.edit_time = datetime.datetime.now() item_add_num = sell_num - goods.item_last_sell_num if item_add_num > 100: goods.item_last_sell_num = sell_num await goods.update() else: raise Exception("出错!数据库中没有查询到相应值") if item_add_num >= 100: goods_item = Goods_Item() goods_item.goods_id = goods.id goods_item.sell_num = sell_num goods_item.add_num = item_add_num await goods_item.save() if goods.add_num > 0: await Goods_Tmp.del_by('goods_id=?', goods.id) tmp = Goods_Tmp() tmp.goods_id = goods.id tmp.add_num = goods.add_num tmp.sell_num = goods.sell_num tmp.edit_time = datetime.datetime.now() await tmp.save()