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
acaed936
Commit
acaed936
authored
Oct 31, 2024
by
邱阿朋
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
打印日志
parent
47a566ff
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
77 additions
and
45 deletions
+77
-45
coop.py
src/coop.py
+7
-18
logger.py
src/helper/logger.py
+10
-0
invoices.py
src/invoices.py
+7
-20
logger.py
src/logger/logger.py
+48
-0
returns.py
src/returns.py
+5
-7
No files found.
src/coop.py
View file @
acaed936
...
@@ -11,7 +11,7 @@ from DrissionPage import ChromiumPage
...
@@ -11,7 +11,7 @@ from DrissionPage import ChromiumPage
from
DrissionPage.errors
import
ElementNotFoundError
from
DrissionPage.errors
import
ElementNotFoundError
from
lxml
import
etree
from
lxml
import
etree
from
helper
import
helper
,
excel
,
file
,
domain
from
helper
import
helper
,
excel
,
file
,
domain
,
logger
country
=
None
country
=
None
...
@@ -32,17 +32,6 @@ def page_get(url):
...
@@ -32,17 +32,6 @@ def page_get(url):
full_url
=
host
+
url
full_url
=
host
+
url
page
.
get
(
full_url
,
timeout
=
3
)
page
.
get
(
full_url
,
timeout
=
3
)
while
True
:
time
.
sleep
(
1
)
title
=
page
.
title
if
title
==
"Amazon Sign-In"
:
print
(
"请登录账号"
)
continue
try
:
page
.
ele
(
"#cvf-submit-otp-button-announce"
)
print
(
"请输入验证码"
)
except
ElementNotFoundError
:
break
def
sku_relations
():
def
sku_relations
():
relations_dict
=
{}
relations_dict
=
{}
...
@@ -81,12 +70,12 @@ def get_report_table_html(invoice_id):
...
@@ -81,12 +70,12 @@ def get_report_table_html(invoice_id):
# 获取报表表单内容
# 获取报表表单内容
report_table_html
=
page
.
ele
(
"#backup-report-table"
)
.
html
report_table_html
=
page
.
ele
(
"#backup-report-table"
)
.
html
if
report_table_html
is
None
or
report_table_html
==
""
:
if
report_table_html
is
None
or
report_table_html
==
""
:
print
(
"表单内容为空,刷新网页"
)
logger
.
logger
()
.
warning
(
"表单内容为空,刷新网页"
)
page
.
refresh
()
page
.
refresh
()
continue
continue
return
report_table_html
return
report_table_html
except
ElementNotFoundError
:
except
ElementNotFoundError
:
print
(
"元素未找到,刷新网页"
)
logger
.
logger
()
.
warning
(
"元素未找到,刷新网页"
)
page
.
refresh
()
page
.
refresh
()
...
@@ -136,7 +125,7 @@ def export_item_read_data(invoice_id):
...
@@ -136,7 +125,7 @@ def export_item_read_data(invoice_id):
def
main
():
def
main
():
relation_data
=
sku_relations
()
# 获取 ASIN 与 SKU 的对应关系数据
relation_data
=
sku_relations
()
# 获取 ASIN 与 SKU 的对应关系数据
coop_list
=
export_list_read_data
()
# 获取合作数据列表
coop_list
=
export_list_read_data
()
# 获取合作数据列表
print
(
f
"共计:{len(coop_list)} 条数据"
)
logger
.
logger
()
.
info
(
f
"共计:{len(coop_list)} 条数据"
)
i
=
0
i
=
0
new_coop_data
=
[]
new_coop_data
=
[]
...
@@ -144,13 +133,13 @@ def main():
...
@@ -144,13 +133,13 @@ def main():
for
_
,
coop
in
coop_list
.
iterrows
():
for
_
,
coop
in
coop_list
.
iterrows
():
i
+=
1
i
+=
1
invoice_id
=
coop
.
get
(
"Invoice ID"
)
# 获取发票 ID
invoice_id
=
coop
.
get
(
"Invoice ID"
)
# 获取发票 ID
print
({
"index"
:
i
,
"invoice_id"
:
invoice_id
})
logger
.
logger
()
.
info
({
"index"
:
i
,
"invoice_id"
:
invoice_id
})
item_coop_data
=
[]
item_coop_data
=
[]
# 根据发票 ID 获取 item 列表
# 根据发票 ID 获取 item 列表
item_list
=
export_item_read_data
(
invoice_id
)
item_list
=
export_item_read_data
(
invoice_id
)
if
item_list
is
None
:
if
item_list
is
None
:
print
(
f
"{invoice_id} 暂无报告信息"
)
logger
.
logger
()
.
warning
(
f
"{invoice_id} 暂无报告信息"
)
continue
continue
for
_
,
item
in
item_list
.
iterrows
():
for
_
,
item
in
item_list
.
iterrows
():
...
@@ -226,4 +215,4 @@ if __name__ == '__main__':
...
@@ -226,4 +215,4 @@ if __name__ == '__main__':
except
KeyboardInterrupt
:
except
KeyboardInterrupt
:
pass
pass
except
Exception
as
e
:
except
Exception
as
e
:
print
(
e
)
logger
.
logger
()
.
error
(
e
)
src/helper/logger.py
0 → 100644
View file @
acaed936
# coding: utf-8
import
os
from
src.logger.logger
import
ConsoleLog
console_log
=
ConsoleLog
()
def
logger
()
->
ConsoleLog
:
return
console_log
src/invoices.py
View file @
acaed936
...
@@ -11,7 +11,7 @@ from DrissionPage import ChromiumPage
...
@@ -11,7 +11,7 @@ from DrissionPage import ChromiumPage
from
DrissionPage.errors
import
ElementNotFoundError
from
DrissionPage.errors
import
ElementNotFoundError
from
lxml
import
etree
from
lxml
import
etree
from
helper
import
helper
,
excel
,
file
,
domain
from
helper
import
helper
,
excel
,
file
,
domain
,
logger
country
=
None
country
=
None
...
@@ -33,19 +33,6 @@ def page_get(url):
...
@@ -33,19 +33,6 @@ def page_get(url):
full_url
=
host
+
url
full_url
=
host
+
url
page
.
get
(
full_url
,
timeout
=
3
)
page
.
get
(
full_url
,
timeout
=
3
)
while
True
:
time
.
sleep
(
1
)
title
=
page
.
title
if
title
==
"Amazon Sign-In"
:
print
(
"请登录账号"
)
continue
try
:
page
.
ele
(
"#cvf-submit-otp-button-announce"
)
print
(
"请输入验证码"
)
except
ElementNotFoundError
:
break
def
export_list_read_data
():
def
export_list_read_data
():
new_file_name
=
'new_Payments.xlsx'
new_file_name
=
'new_Payments.xlsx'
if
os
.
path
.
isfile
(
new_file_name
):
if
os
.
path
.
isfile
(
new_file_name
):
...
@@ -110,7 +97,7 @@ def export_details_read_data(invoice_number):
...
@@ -110,7 +97,7 @@ def export_details_read_data(invoice_number):
excel
.
remove_last_comma
(
file_name
)
excel
.
remove_last_comma
(
file_name
)
break
break
except
ElementNotFoundError
:
except
ElementNotFoundError
:
print
(
"导出按钮不存在刷新网页"
)
logger
.
logger
()
.
warning
(
"导出按钮不存在刷新网页"
)
page
.
refresh
()
page
.
refresh
()
return
pd
.
read_csv
(
file_name
)
return
pd
.
read_csv
(
file_name
)
...
@@ -199,13 +186,13 @@ def click_get_price_data():
...
@@ -199,13 +186,13 @@ def click_get_price_data():
while
True
:
while
True
:
try
:
try
:
page
.
ele
(
"#pd"
,
timeout
=
5
)
.
click
()
page
.
ele
(
"#pd"
,
timeout
=
5
)
.
click
()
print
(
"等待争议数据加载,5秒后获取表单数据"
)
logger
.
logger
()
.
debug
(
"等待争议数据加载,5秒后获取表单数据"
)
page
.
wait
(
5
)
page
.
wait
(
5
)
table_html
=
page
.
ele
(
"#priceDiscrepancyWithDMSGridForm"
,
timeout
=
5
)
.
html
table_html
=
page
.
ele
(
"#priceDiscrepancyWithDMSGridForm"
,
timeout
=
5
)
.
html
price_data
=
price_extract_data
(
table_html
)
price_data
=
price_extract_data
(
table_html
)
return
price_data
return
price_data
except
ElementNotFoundError
:
except
ElementNotFoundError
:
print
(
"未获取到表数据"
)
logger
.
logger
()
.
warning
(
"未获取到表数据"
)
break
break
return
[]
return
[]
...
@@ -261,7 +248,7 @@ def main():
...
@@ -261,7 +248,7 @@ def main():
list_data
=
export_list_read_data
()
list_data
=
export_list_read_data
()
excel
.
save_xls
(
list_data
,
"回款数据.xlsx"
,
"Remittance payments"
)
excel
.
save_xls
(
list_data
,
"回款数据.xlsx"
,
"Remittance payments"
)
print
(
f
"共计:{len(list_data)} 订单"
)
logger
.
logger
()
.
info
(
f
"共计:{len(list_data)} 订单"
)
all_normal_pay_data
=
[]
all_normal_pay_data
=
[]
all_price_pay_data
=
[]
all_price_pay_data
=
[]
...
@@ -272,7 +259,7 @@ def main():
...
@@ -272,7 +259,7 @@ def main():
# 获取当前订单的Payee和优惠比例
# 获取当前订单的Payee和优惠比例
vendor_payment_terms
=
get_po_code
(
i
,
invoice_number
[:
8
])
vendor_payment_terms
=
get_po_code
(
i
,
invoice_number
[:
8
])
print
(
vendor_payment_terms
)
logger
.
logger
()
.
info
(
vendor_payment_terms
)
vendor
=
vendor_payment_terms
[
'vendor'
]
vendor
=
vendor_payment_terms
[
'vendor'
]
deduction_points
=
int
(
vendor_payment_terms
[
'payment_terms'
])
deduction_points
=
int
(
vendor_payment_terms
[
'payment_terms'
])
...
@@ -334,4 +321,4 @@ if __name__ == '__main__':
...
@@ -334,4 +321,4 @@ if __name__ == '__main__':
except
KeyboardInterrupt
:
except
KeyboardInterrupt
:
pass
pass
except
Exception
as
e
:
except
Exception
as
e
:
print
(
e
)
logger
.
logger
()
.
error
(
e
)
src/logger/logger.py
0 → 100644
View file @
acaed936
# coding: utf-8
import
logging
class
ColoredFormatter
(
logging
.
Formatter
):
def
format
(
self
,
record
):
# 为不同的日志级别定义一些颜色
colors
=
{
'DEBUG'
:
'
\033
[94m'
,
# blue
'INFO'
:
'
\033
[92m'
,
# green
'WARNING'
:
'
\033
[93m'
,
# yellow
'ERROR'
:
'
\033
[91m'
,
# red
'CRITICAL'
:
'
\033
[95m'
# magenta
}
# 从记录中获取原始消息
message
=
super
()
.
format
(
record
)
# 如果日志级别定义了颜色,则添加颜色代码
if
record
.
levelname
in
colors
:
color_code
=
colors
[
record
.
levelname
]
message
=
f
"{color_code}{message}
\033
[0m"
return
message
class
ConsoleLog
:
def
__init__
(
self
):
self
.
logger
=
logging
.
getLogger
(
__name__
)
self
.
logger
.
setLevel
(
logging
.
DEBUG
)
# 使用彩色格式化程序创建控制台处理程序
console_handler
=
logging
.
StreamHandler
()
console_handler
.
setFormatter
(
ColoredFormatter
(
'
%(asctime)
s
%(message)
s'
))
# 将控制台处理程序添加到记录器
self
.
logger
.
addHandler
(
console_handler
)
def
info
(
self
,
arg
):
self
.
logger
.
info
(
arg
)
def
debug
(
self
,
arg
):
self
.
logger
.
debug
(
arg
)
def
warning
(
self
,
arg
):
self
.
logger
.
warning
(
arg
)
def
error
(
self
,
arg
):
self
.
logger
.
error
(
arg
)
def
critical
(
self
,
arg
):
self
.
logger
.
critical
(
arg
)
\ No newline at end of file
src/returns.py
View file @
acaed936
# coding: utf-8
# coding: utf-8
# 导出退款记录
# 导出退款记录
import
os
import
os
import
time
import
pandas
as
pd
import
pandas
as
pd
from
DrissionPage
import
ChromiumPage
from
DrissionPage
import
ChromiumPage
from
DrissionPage.errors
import
ElementNotFoundError
from
DrissionPage.errors
import
ElementNotFoundError
from
lxml
import
etree
from
helper
import
helper
,
excel
,
file
,
domain
from
helper
import
helper
,
excel
,
file
,
domain
,
logger
country
=
None
country
=
None
...
@@ -69,7 +67,7 @@ def export_item_read_data(return_id):
...
@@ -69,7 +67,7 @@ def export_item_read_data(return_id):
file
.
wait_for_downloads
(
file_name
)
file
.
wait_for_downloads
(
file_name
)
break
break
except
ElementNotFoundError
:
except
ElementNotFoundError
:
print
(
"元素未找到,刷新网页"
)
logger
.
logger
()
.
warning
(
"元素未找到,刷新网页"
)
page
.
refresh
()
page
.
refresh
()
# 读取回退商品详情
# 读取回退商品详情
...
@@ -82,14 +80,14 @@ def main():
...
@@ -82,14 +80,14 @@ def main():
# 下载并读取list数据
# 下载并读取list数据
list_data
=
export_list_read_data
()
list_data
=
export_list_read_data
()
print
(
f
"共计:{len(list_data)} 订单"
)
logger
.
logger
()
.
info
(
f
"共计:{len(list_data)} 订单"
)
new_list_data
=
[]
new_list_data
=
[]
i
=
0
i
=
0
for
_
,
data
in
list_data
.
iterrows
():
for
_
,
data
in
list_data
.
iterrows
():
i
+=
1
i
+=
1
return_id
=
data
.
get
(
'Return ID'
)
return_id
=
data
.
get
(
'Return ID'
)
print
({
"index"
:
i
,
"return_id"
:
return_id
})
logger
.
logger
()
.
info
({
"index"
:
i
,
"return_id"
:
return_id
})
# 下载退货详情表格读取数据
# 下载退货详情表格读取数据
item_data
=
export_item_read_data
(
return_id
)
item_data
=
export_item_read_data
(
return_id
)
...
@@ -127,4 +125,4 @@ if __name__ == '__main__':
...
@@ -127,4 +125,4 @@ if __name__ == '__main__':
except
KeyboardInterrupt
:
except
KeyboardInterrupt
:
pass
pass
except
Exception
as
e
:
except
Exception
as
e
:
print
(
e
)
logger
.
logger
()
.
error
(
e
)
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