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

spa查询

parent dd001f0c
......@@ -64,10 +64,9 @@ def get_report_table_html(invoice_id):
def get_report_agreement_text(invoice_id):
# 关闭下载报表窗口
page.ele("#return-to-invoice-overview").click()
# 点击选项卡
page.ele("#a-autoid-2-announce").click()
page.wait(1)
# 下载报表
page.ele(f"#invoiceDownloads-{invoice_id}_3").click()
page.wait(5)
......@@ -104,10 +103,11 @@ def get_report_agreement_text(invoice_id):
return data_list
def export_item_read_data(invoice_id):
file_name = f"spa\\{invoice_id}.xlsx"
if os.path.isfile(file_name):
df = pd.read_excel(file_name)
df = pd.read_excel(file_name, sheet_name=None)
return df
# 获取报表表单内容
......@@ -116,8 +116,9 @@ def export_item_read_data(invoice_id):
# 提取所有链接
links = tree.xpath('//table[@id="backup-report-table"]//a/@href')
if len(links) == 0:
page.refresh()
data_list = get_report_agreement_text(invoice_id)
return pd.DataFrame(data_list)
return {"Sheet1": pd.DataFrame(data_list)}
for link in links:
# 解析链接中的查询参数
......@@ -130,7 +131,9 @@ def export_item_read_data(invoice_id):
page.download(host + link, report_file_tmp_dir, show_msg=True)
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:
df = pd.read_excel(report_file)
......@@ -160,6 +163,7 @@ def main():
# 获取数据
relation_data = api.sku_relations(country) # 获取 ASIN 与 SKU 的对应关系数据
coop_list = export_list_read_data() # 获取合作数据列表
# coop_list = coop_list[140:]
log.info(f"共计: {len(coop_list)} 条数据")
# 获取当前日期和时间并格式化
......@@ -180,27 +184,28 @@ def main():
continue
# 获取当前发票的 item 列表
item_list = export_item_read_data(invoice_id)
if item_list is None:
item_dict = export_item_read_data(invoice_id)
if item_dict is None:
log.warning(f"{invoice_id} 暂无报告信息")
continue
# 如果是字典,遍历其值
if isinstance(item_list, dict):
for i, value in enumerate(item_list.values(), start=1):
if len(item_dict) > 1:
for i, value in enumerate(item_dict.values(), start=1):
invoice_id_num = f"{invoice_id}-{i}"
processed_items = process_large_items(value, relation_data)
if processed_items:
large_sheet_data[invoice_id_num] = processed_items
# 如果是列表且长度 >= 10
elif len(item_list) >= 10:
processed_items = process_large_items(item_list, relation_data)
if processed_items:
large_sheet_data[invoice_id] = processed_items
else:
# 如果是较小的列表
processed_items = process_small_items(item_list, coop, relation_data)
sheet_data.extend(processed_items)
item_list = item_dict['Sheet1']
# 如果是列表且长度 >= 10 则新增sheet
if len(item_list) >= 10:
processed_items = process_large_items(item_list, relation_data)
if processed_items:
large_sheet_data[invoice_id] = processed_items
else:
# 如果是较小的列表
processed_items = process_small_items(item_list, coop, relation_data)
sheet_data.extend(processed_items)
# 保存数据到 Excel 文件
save_excel(sheet_data, large_sheet_data, new_file_name)
......
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