Commit 5d07be2a authored by 邱阿朋's avatar 邱阿朋

spa查询

parent dd001f0c
...@@ -64,10 +64,9 @@ def get_report_table_html(invoice_id): ...@@ -64,10 +64,9 @@ def get_report_table_html(invoice_id):
def get_report_agreement_text(invoice_id): def get_report_agreement_text(invoice_id):
# 关闭下载报表窗口
page.ele("#return-to-invoice-overview").click()
# 点击选项卡 # 点击选项卡
page.ele("#a-autoid-2-announce").click() page.ele("#a-autoid-2-announce").click()
page.wait(1)
# 下载报表 # 下载报表
page.ele(f"#invoiceDownloads-{invoice_id}_3").click() page.ele(f"#invoiceDownloads-{invoice_id}_3").click()
page.wait(5) page.wait(5)
...@@ -104,10 +103,11 @@ def get_report_agreement_text(invoice_id): ...@@ -104,10 +103,11 @@ def get_report_agreement_text(invoice_id):
return data_list return data_list
def export_item_read_data(invoice_id): def export_item_read_data(invoice_id):
file_name = f"spa\\{invoice_id}.xlsx" file_name = f"spa\\{invoice_id}.xlsx"
if os.path.isfile(file_name): if os.path.isfile(file_name):
df = pd.read_excel(file_name) df = pd.read_excel(file_name, sheet_name=None)
return df return df
# 获取报表表单内容 # 获取报表表单内容
...@@ -116,8 +116,9 @@ def export_item_read_data(invoice_id): ...@@ -116,8 +116,9 @@ def export_item_read_data(invoice_id):
# 提取所有链接 # 提取所有链接
links = tree.xpath('//table[@id="backup-report-table"]//a/@href') links = tree.xpath('//table[@id="backup-report-table"]//a/@href')
if len(links) == 0: if len(links) == 0:
page.refresh()
data_list = get_report_agreement_text(invoice_id) data_list = get_report_agreement_text(invoice_id)
return pd.DataFrame(data_list) return {"Sheet1": pd.DataFrame(data_list)}
for link in links: for link in links:
# 解析链接中的查询参数 # 解析链接中的查询参数
...@@ -130,7 +131,9 @@ def export_item_read_data(invoice_id): ...@@ -130,7 +131,9 @@ def export_item_read_data(invoice_id):
page.download(host + link, report_file_tmp_dir, show_msg=True) page.download(host + link, report_file_tmp_dir, show_msg=True)
report_file = report_file_tmp_dir + "BackupReport.xls" report_file = report_file_tmp_dir + "BackupReport.xls"
file.wait_for_downloads(report_file, 120) is_down = file.wait_for_downloads(report_file, 60)
if is_down is False:
raise FileNotFoundError(f"{report_file},文件不存在")
try: try:
df = pd.read_excel(report_file) df = pd.read_excel(report_file)
...@@ -160,6 +163,7 @@ def main(): ...@@ -160,6 +163,7 @@ def main():
# 获取数据 # 获取数据
relation_data = api.sku_relations(country) # 获取 ASIN 与 SKU 的对应关系数据 relation_data = api.sku_relations(country) # 获取 ASIN 与 SKU 的对应关系数据
coop_list = export_list_read_data() # 获取合作数据列表 coop_list = export_list_read_data() # 获取合作数据列表
# coop_list = coop_list[140:]
log.info(f"共计: {len(coop_list)} 条数据") log.info(f"共计: {len(coop_list)} 条数据")
# 获取当前日期和时间并格式化 # 获取当前日期和时间并格式化
...@@ -180,20 +184,21 @@ def main(): ...@@ -180,20 +184,21 @@ def main():
continue continue
# 获取当前发票的 item 列表 # 获取当前发票的 item 列表
item_list = export_item_read_data(invoice_id) item_dict = export_item_read_data(invoice_id)
if item_list is None: if item_dict is None:
log.warning(f"{invoice_id} 暂无报告信息") log.warning(f"{invoice_id} 暂无报告信息")
continue continue
# 如果是字典,遍历其值 if len(item_dict) > 1:
if isinstance(item_list, dict): for i, value in enumerate(item_dict.values(), start=1):
for i, value in enumerate(item_list.values(), start=1):
invoice_id_num = f"{invoice_id}-{i}" invoice_id_num = f"{invoice_id}-{i}"
processed_items = process_large_items(value, relation_data) processed_items = process_large_items(value, relation_data)
if processed_items: if processed_items:
large_sheet_data[invoice_id_num] = processed_items large_sheet_data[invoice_id_num] = processed_items
# 如果是列表且长度 >= 10 else:
elif len(item_list) >= 10: item_list = item_dict['Sheet1']
# 如果是列表且长度 >= 10 则新增sheet
if len(item_list) >= 10:
processed_items = process_large_items(item_list, relation_data) processed_items = process_large_items(item_list, relation_data)
if processed_items: if processed_items:
large_sheet_data[invoice_id] = processed_items large_sheet_data[invoice_id] = processed_items
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment