Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
amazon_reports
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
common
amazon_reports
Commits
5d07be2a
Commit
5d07be2a
authored
Dec 21, 2024
by
邱阿朋
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
spa查询
parent
dd001f0c
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
23 additions
and
18 deletions
+23
-18
spa_search.py
src/spa_search.py
+23
-18
No files found.
src/spa_search.py
View file @
5d07be2a
...
...
@@ -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_
lis
t
=
export_item_read_data
(
invoice_id
)
if
item_
lis
t
is
None
:
item_
dic
t
=
export_item_read_data
(
invoice_id
)
if
item_
dic
t
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
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment