Commit ebd5d295 by yexing

整理文件

parent 48f21530
...@@ -5,3 +5,4 @@ fu_data ...@@ -5,3 +5,4 @@ fu_data
out out
.venv .venv
*.lock *.lock
test
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -13,6 +13,7 @@ dependencies = [ ...@@ -13,6 +13,7 @@ dependencies = [
"tenacity", "tenacity",
"redis>=7.0.1", "redis>=7.0.1",
"requests>=2.32.5", "requests>=2.32.5",
"walmartbot>=0.0.3",
] ]
[[tool.uv.index]] [[tool.uv.index]]
......
import os
from tool.log import create_logger
BROWSER_PATH = os.environ.get(
'BROWSER_PATH',
r"D:\SuperBrowser\starter.exe"
)
SOCKET_PORT = os.environ.get(
'SOCKET_PORT',
16851
)
DRIVER_PATH = os.environ.get(
'DRIVER_PATH',
r"D:\webdriver"
)
EXPORT_PATH = os.environ.get(
'EXPORT_PATH',
r"E:\wfs_export_data"
)
USER_INFO = {
"company": "深圳市泰极电子商务有限公司",
"username": "Leshiliuzong",
"password": "leshi2023"
}
WFS_HEADERS = {
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36",
"wm_aurora.market": "US",
}
logger = create_logger("wfs_export")
from DrissionPage import Chromium
from DrissionPage.items import MixTab
from .browser import SuperBrowserBridge
from .const import USER_INFO, logger
class WFSExport:
def __init__(self, start_date: str, end_date: str):
self._start_date = start_date
self._end_date = end_date
self.bridge = SuperBrowserBridge(USER_INFO)
self.bridge.init()
self.cookies: dict = None
self.uri: str = None
def download_report(self, names: dict, params: dict, ext: str = 'csv'):
pass
def download_reports(self, tab: MixTab, driver: Chromium):
"""下载报表"""
self.uri = "https://seller.walmart.com/aurora/v1/wfs/reports"
tab.run_js()
self.download_report({
"apiName": "salesReport",
"showName": "Orders"
}, {
"fromDate": self._start_date,
"toDate": self._end_date,
}, 'xlsx')
self.download_report({
"apiName": "salesReport",
"showName": "Orders",
"sheetName": "Multchannel_Fulfillment_Details"
}, {
"fromDate": self._start_date,
"toDate": self._end_date,
"type": "MCS"
}, 'xlsx')
self.download_report({
"apiName": "returnsReport",
"showName": "Customer returns"
}, {
"fromDate": f"{self._start_date}T00:00:00",
"toDate": f"{self._end_date}T23:59:59",
})
self.download_report({
"apiName": "poAudit",
"showName": "Inbound receipts"
}, {
"fromDate": self._start_date,
"toDate": self._end_date,
"gtin": ""
})
self.download_report({
"apiName": "inventoryReconciliation",
"showName": "Inventory reconciliation"
}, {
"fromDate": self._start_date,
"toDate": self._end_date,
})
breakpoint()
# self.download_report({
# "apiName": "inventoryHealthReport",
# "showName": "Inventory health"
# }, None)
self.download_report({
"apiName": "feeDetailReport",
"showName": "Settlement"
}, {
"startDate": self._start_date,
"endDate": self._end_date,
})
self.download_report({
"apiName": "storageFeeReport",
"showName": "Storage"
}, {
"startDate": self._start_date,
"endDate": self._end_date,
})
def download_payments(self, tab: MixTab, driver: Chromium):
breakpoint()
def pass_test(self, tab: MixTab, driver: Chromium):
"""人机检测"""
breakpoint()
logger.info("尝试通过人机检测")
# tab.actions.move_to("#px-captcha").hold().release()
tab.ele("@text()=登录").click()
tab.wait.ele_displayed('@text()=WFS')
cookies = tab.cookies()
logger.debug(f"获取到cookies: {cookies.as_str()}")
self.cookies = cookies.as_dict()
def run(self):
try:
self.bridge.browser_list = [
browser for browser in self.bridge.browser_list
if browser['platform_name'] == '沃尔玛-全球'
]
self.bridge.add_opt(self.pass_test)
self.bridge.add_opt(self.download_reports)
self.bridge.add_opt(self.download_payments)
self.bridge.run(sn=1)
finally:
self.bridge.exit()
\ No newline at end of file
...@@ -104,8 +104,8 @@ class Tool: ...@@ -104,8 +104,8 @@ class Tool:
""" """
return { return {
"user-agent": UA.chrome, "user-agent": UA.chrome,
# "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
# "referer": "https://www.walmart.com/", "referer": "https://www.walmart.com/",
# 'Cookie': 'xptwj=uz:37e0877dc804c3221718:bdVasz6/73NdttPtcK27fPToos/4oZxy1UVlykJE0nkfLqVhmrKHI452MWIshP06rvlg6Oo4i/CAN+vCMS/BDqQPJtb1jF2UpHbJHuf+N3jupylUCiRaFrAtkQyytLu9SHMeQtQzWLBWK0mgSKk5GRqrGp86eHJ+TbhU//sz5ypzHMVRNtnq; ak_bmsc=2773E11742238181A0BCDEF70472B0E8~000000000000000000000000000000~YAAQjPw7F8Q79RiRAQAAJI6FIRhEoerjT5Fn46CibnTHiZ8nQJv6pLxGhTxu+OWA2qwUlBGLclYLJGQXToJ+BTKfwzjwI5+ud07a9A2L57hKMVbIX2vAo4ZGXA9p0BWAKKn/SbV4VHTnZa/i+pIMZB0ylq0shc7noTTr/tsto5DDd/FHf5vFFICqtEujI+2AckaTNJGYW8PPy9VW6DqXCNpVcgo3qVSntqYOT1bhJLjdYtWmspJGBhEFH5vRQdC7IdN3VqC3BxJLZWzVTaQsmsJYN2Pem7MKiHyk8/AgjKv9ZRs57VOCn/YXSPICVuP9SNUGIJcxZG8Le0VS+L4XcgyY3ngnOx8XBn8MNzpceQ0rKVCI44zb1SD11n6ympD4JV12cwN8L1JFpPs=; vtc=UcbKnqHGuhRWhgfWtgcr70; bstc=UcbKnqHGuhRWhgfWtgcr70; pxcts=85e47474-52ff-11ef-8dba-4f0e258ac181; _pxvid=85e46481-52ff-11ef-8dba-e4bc4df1a16b; adblocked=true; hasACID=true; assortmentStoreId=3081; _shcc=US; _intlbu=false; hasLocData=1; abqme=true; mobileweb=0; xpth=x-o-mart%2BB2C~x-o-mverified%2Bfalse; xpa=54G-6|CoEEB|D2oRZ|ELwUx|IuElO|McEea|MoRkL|NbX17|O8sIU|OFImx|Ocfr2|SqH-y|VyWly|XIItK|eo_el|nzZmL|rd3k-|zf8aF; exp-ck=54G-61D2oRZ1ELwUx1IuElO1NbX172O8sIU1OFImx1SqH-y2VyWly1XIItK2eo_el3nzZmL1zf8aF2; _pxhd=c8185cb38f153869ee089d6ab969bf1ed0ba0f4d4e66cd414b5dfb0daa85c913:85e46481-52ff-11ef-8dba-e4bc4df1a16b; bm_mi=ABB90B88348B58A9787BACA8B2B84DC5~YAAQjPw7F7w99RiRAQAA7KGFIRgasMlRZloJg1t00D254khXjSN/IrLyrciUo2TiMd/5dzEdpQ0rZdLkmWbcqhDvW4LcpJsY0/ViOAItAsERoIpacm5TGpo4+dliNw8JD8aa2peQ5nWBF46y0YMbmPatpEzPfi+SasMjQmt+oWQMr2Q9I3p9CBFvXsmAazCwcGDmXNtTShQbyQ9Gfq93Zgc1eh3WXmhtsDw7hanPmZF2kqaqIL1bBE46OKpVQzJKpiBZVtluHYILY+4LsIaKmwxNJmW1gbqIDx8Sbm4anTBTryfr26L/s3IA5mQ3yyk=~1; _px3=27f094085ac92f8a53a7507dbb323f50efb95f173b554348e0b72a5732857d78:2VRKXx+P0wIrkvwIM7+Xtfysy6oYDVs6V9uhgK8m88W6Ck43XPZSkDLlnFReenWMPrQ3MmpViErhyjVaXANA0A==:1000:5ZwO3UHAT/3uI8KmWYckrGicT4zhb/RLBnKTB2fZu7NK2BVIs9Tp4YrQEPmeQLr27F/Csvs7uj4SuQMN8cPuZyDda7XwJIqyx7V/BlbxwhefKls21slpn9Hkiz0U44U2DITgh0p/sfol2JVGAEXwS66TjQY9DEa3M2GGuD2Xf4+3KT5MAymWIMYp1w5P3Rqtv0KcYxURCTMZDW2B3Ol9/sKFAOeEgEWRfvTh0NaYVLI=; _astc=52d130b133cbd1b501460d9fdae93a97; xptc=_m%2B9~assortmentStoreId%2B3081; xpm=1%2B1722844296%2BUcbKnqHGuhRWhgfWtgcr70~%2B0; _pxde=c92ceb7d7d808ccee6d120ac60cabdac3b14ba9f42bfb2ff4ed5e6ef8f8a7396:eyJ0aW1lc3RhbXAiOjE3MjI4NDQyOTkyMjN9; xptwg=2769187247:ADDF1B60AE2118:1B17408:73DC67D1:89F8600E:2CEC42A1:; TS012768cf=01d032572a9131c004c984f1591f1050b2bc64767650396a370f20a1d0dcb0c458b394f0f12ffbd85b8ab44153a1cbf2c143166c54; TS01a90220=01d032572a9131c004c984f1591f1050b2bc64767650396a370f20a1d0dcb0c458b394f0f12ffbd85b8ab44153a1cbf2c143166c54; TS2a5e0c5c027=08edc6f644ab20005250728372d83aee067d8ef4429ed38ad3f72422cd7beb712284fa2bb6dcc53008e648c99a113000bbea3d56aaf743f8797d1fd537dfebae66e076aea8557039e6abbfe3d370af617c79b48e084bdcd637ffb8a8b7b06568; QMReplaySample=true; io_id=2b1e23f1-a177-4e38-86da-561e276b6abf; TS016ef4c8=018f75cfbcd4def242c1bbe08d5578972d0f66b599a484d002e1540db87e4ac90c4800be2ab90e9078fff48b5e8c5739eb3d440c3b; TS01f89308=018f75cfbcd4def242c1bbe08d5578972d0f66b599a484d002e1540db87e4ac90c4800be2ab90e9078fff48b5e8c5739eb3d440c3b; TS8cb5a80e027=08bd2f8669ab2000009af9c8550cbc249ae938bfdca0492f8d384c6808c0e90a144e4024b84fbf37082893210e113000ad32e6b74f355e50fc204aad58e20722d6ed74efd203ad1c6a356b2d93d18f547cc29e00ec15f9e4c59e73bb2f5fc352; bm_sv=60519E529ABF4EFE97D2B63408DD5BD1~YAAQjPw7F35D9RiRAQAAANaFIRionbimzr8LgiM2GAxwy+I6Bu2U7faKmNM03jfRJ1ukw3hFQzT+obDLwlGwWa4HEiO9wHosev0vkl9j46QR9DoFq+6/MAGwpf9A8wuMswRgYpSFSZvyAm8uCG9mGPzhuuN5sOmxMflboFyOm2+5jFgcDmBA3WzZRPhRRy1M0xYfthXmO5D7IppDKw8+Zbzj7sG6Wdg5pUBb5XzzWaDNDswJnHdONYEd7O7hOGbyIw==~1' # 'Cookie': 'xptwj=uz:37e0877dc804c3221718:bdVasz6/73NdttPtcK27fPToos/4oZxy1UVlykJE0nkfLqVhmrKHI452MWIshP06rvlg6Oo4i/CAN+vCMS/BDqQPJtb1jF2UpHbJHuf+N3jupylUCiRaFrAtkQyytLu9SHMeQtQzWLBWK0mgSKk5GRqrGp86eHJ+TbhU//sz5ypzHMVRNtnq; ak_bmsc=2773E11742238181A0BCDEF70472B0E8~000000000000000000000000000000~YAAQjPw7F8Q79RiRAQAAJI6FIRhEoerjT5Fn46CibnTHiZ8nQJv6pLxGhTxu+OWA2qwUlBGLclYLJGQXToJ+BTKfwzjwI5+ud07a9A2L57hKMVbIX2vAo4ZGXA9p0BWAKKn/SbV4VHTnZa/i+pIMZB0ylq0shc7noTTr/tsto5DDd/FHf5vFFICqtEujI+2AckaTNJGYW8PPy9VW6DqXCNpVcgo3qVSntqYOT1bhJLjdYtWmspJGBhEFH5vRQdC7IdN3VqC3BxJLZWzVTaQsmsJYN2Pem7MKiHyk8/AgjKv9ZRs57VOCn/YXSPICVuP9SNUGIJcxZG8Le0VS+L4XcgyY3ngnOx8XBn8MNzpceQ0rKVCI44zb1SD11n6ympD4JV12cwN8L1JFpPs=; vtc=UcbKnqHGuhRWhgfWtgcr70; bstc=UcbKnqHGuhRWhgfWtgcr70; pxcts=85e47474-52ff-11ef-8dba-4f0e258ac181; _pxvid=85e46481-52ff-11ef-8dba-e4bc4df1a16b; adblocked=true; hasACID=true; assortmentStoreId=3081; _shcc=US; _intlbu=false; hasLocData=1; abqme=true; mobileweb=0; xpth=x-o-mart%2BB2C~x-o-mverified%2Bfalse; xpa=54G-6|CoEEB|D2oRZ|ELwUx|IuElO|McEea|MoRkL|NbX17|O8sIU|OFImx|Ocfr2|SqH-y|VyWly|XIItK|eo_el|nzZmL|rd3k-|zf8aF; exp-ck=54G-61D2oRZ1ELwUx1IuElO1NbX172O8sIU1OFImx1SqH-y2VyWly1XIItK2eo_el3nzZmL1zf8aF2; _pxhd=c8185cb38f153869ee089d6ab969bf1ed0ba0f4d4e66cd414b5dfb0daa85c913:85e46481-52ff-11ef-8dba-e4bc4df1a16b; bm_mi=ABB90B88348B58A9787BACA8B2B84DC5~YAAQjPw7F7w99RiRAQAA7KGFIRgasMlRZloJg1t00D254khXjSN/IrLyrciUo2TiMd/5dzEdpQ0rZdLkmWbcqhDvW4LcpJsY0/ViOAItAsERoIpacm5TGpo4+dliNw8JD8aa2peQ5nWBF46y0YMbmPatpEzPfi+SasMjQmt+oWQMr2Q9I3p9CBFvXsmAazCwcGDmXNtTShQbyQ9Gfq93Zgc1eh3WXmhtsDw7hanPmZF2kqaqIL1bBE46OKpVQzJKpiBZVtluHYILY+4LsIaKmwxNJmW1gbqIDx8Sbm4anTBTryfr26L/s3IA5mQ3yyk=~1; _px3=27f094085ac92f8a53a7507dbb323f50efb95f173b554348e0b72a5732857d78:2VRKXx+P0wIrkvwIM7+Xtfysy6oYDVs6V9uhgK8m88W6Ck43XPZSkDLlnFReenWMPrQ3MmpViErhyjVaXANA0A==:1000:5ZwO3UHAT/3uI8KmWYckrGicT4zhb/RLBnKTB2fZu7NK2BVIs9Tp4YrQEPmeQLr27F/Csvs7uj4SuQMN8cPuZyDda7XwJIqyx7V/BlbxwhefKls21slpn9Hkiz0U44U2DITgh0p/sfol2JVGAEXwS66TjQY9DEa3M2GGuD2Xf4+3KT5MAymWIMYp1w5P3Rqtv0KcYxURCTMZDW2B3Ol9/sKFAOeEgEWRfvTh0NaYVLI=; _astc=52d130b133cbd1b501460d9fdae93a97; xptc=_m%2B9~assortmentStoreId%2B3081; xpm=1%2B1722844296%2BUcbKnqHGuhRWhgfWtgcr70~%2B0; _pxde=c92ceb7d7d808ccee6d120ac60cabdac3b14ba9f42bfb2ff4ed5e6ef8f8a7396:eyJ0aW1lc3RhbXAiOjE3MjI4NDQyOTkyMjN9; xptwg=2769187247:ADDF1B60AE2118:1B17408:73DC67D1:89F8600E:2CEC42A1:; TS012768cf=01d032572a9131c004c984f1591f1050b2bc64767650396a370f20a1d0dcb0c458b394f0f12ffbd85b8ab44153a1cbf2c143166c54; TS01a90220=01d032572a9131c004c984f1591f1050b2bc64767650396a370f20a1d0dcb0c458b394f0f12ffbd85b8ab44153a1cbf2c143166c54; TS2a5e0c5c027=08edc6f644ab20005250728372d83aee067d8ef4429ed38ad3f72422cd7beb712284fa2bb6dcc53008e648c99a113000bbea3d56aaf743f8797d1fd537dfebae66e076aea8557039e6abbfe3d370af617c79b48e084bdcd637ffb8a8b7b06568; QMReplaySample=true; io_id=2b1e23f1-a177-4e38-86da-561e276b6abf; TS016ef4c8=018f75cfbcd4def242c1bbe08d5578972d0f66b599a484d002e1540db87e4ac90c4800be2ab90e9078fff48b5e8c5739eb3d440c3b; TS01f89308=018f75cfbcd4def242c1bbe08d5578972d0f66b599a484d002e1540db87e4ac90c4800be2ab90e9078fff48b5e8c5739eb3d440c3b; TS8cb5a80e027=08bd2f8669ab2000009af9c8550cbc249ae938bfdca0492f8d384c6808c0e90a144e4024b84fbf37082893210e113000ad32e6b74f355e50fc204aad58e20722d6ed74efd203ad1c6a356b2d93d18f547cc29e00ec15f9e4c59e73bb2f5fc352; bm_sv=60519E529ABF4EFE97D2B63408DD5BD1~YAAQjPw7F35D9RiRAQAAANaFIRionbimzr8LgiM2GAxwy+I6Bu2U7faKmNM03jfRJ1ukw3hFQzT+obDLwlGwWa4HEiO9wHosev0vkl9j46QR9DoFq+6/MAGwpf9A8wuMswRgYpSFSZvyAm8uCG9mGPzhuuN5sOmxMflboFyOm2+5jFgcDmBA3WzZRPhRRy1M0xYfthXmO5D7IppDKw8+Zbzj7sG6Wdg5pUBb5XzzWaDNDswJnHdONYEd7O7hOGbyIw==~1'
} }
...@@ -182,9 +182,9 @@ class Tool: ...@@ -182,9 +182,9 @@ class Tool:
s.headers.clear() s.headers.clear()
s.cookies.clear() s.cookies.clear()
s.proxies.clear() s.proxies.clear()
proxies = {"http": f"http://{proxy_ip}", "https": f"http://{proxy_ip}"}
walmart_headers = Tool.get_walmart_headers()
try: try:
proxies = {"http": f"http://{proxy_ip}", "https": f"http://{proxy_ip}"}
walmart_headers = Tool.get_walmart_headers()
impersonate = Tool.get_impersonate() impersonate = Tool.get_impersonate()
response = await s.get( response = await s.get(
url, url,
...@@ -201,7 +201,7 @@ class Tool: ...@@ -201,7 +201,7 @@ class Tool:
@staticmethod @staticmethod
@retry(stop=stop_after_attempt(3), wait=wait_random(1, 2), reraise=True) @retry(stop=stop_after_attempt(3), wait=wait_random(1, 2), reraise=True)
async def get_tasks(s: AsyncSession) -> list: async def get_tasks(s: AsyncSession) -> dict:
"""获取任务 """获取任务
:param s: 异步会话 :param s: 异步会话
...@@ -215,8 +215,8 @@ class Tool: ...@@ -215,8 +215,8 @@ class Tool:
logger.info(resp.text) logger.info(resp.text)
data: dict = resp.json() data: dict = resp.json()
if data["status"].lower() == "ok": if data["status"].lower() == "ok":
return [it["itemId"] for it in data.get("shop_items", [{}])] return data
return [] return {}
class Goods: class Goods:
...@@ -345,14 +345,17 @@ class Goods: ...@@ -345,14 +345,17 @@ class Goods:
async with AsyncSession(max_clients=50) as s: async with AsyncSession(max_clients=50) as s:
try: try:
start = datetime.now().timestamp() start = datetime.now().timestamp()
task_ips = await Tool.get_tasks(s) tasks = await Tool.get_tasks(s)
if IS_DEBUG:
tasks = {"shop_items":[{"itemId":"17966764908"},{"itemId":"17968810088"},{"itemId":"17944620055"},{"itemId":"17926655039"},{"itemId":"17932960518"},{"itemId":"17846316295"},{"itemId":"17930914065"},{"itemId":"17909763301"},{"itemId":"17889919293"},{"itemId":"15260371868"},{"itemId":"15273504950"},{"itemId":"17887921270"},{"itemId":"17889869343"},{"itemId":"17946264703"},{"itemId":"17923362664"},{"itemId":"17893521905"},{"itemId":"17958760022"},{"itemId":"17865916920"},{"itemId":"17933200514"},{"itemId":"17944752349"},{"itemId":"17971364235"},{"itemId":"17917919511"},{"itemId":"17974264921"},{"itemId":"14926567281"},{"itemId":"17163956782"},{"itemId":"17955461898"},{"itemId":"17968065170"},{"itemId":"17925772724"},{"itemId":"17898659471"},{"itemId":"14795072711"},{"itemId":"17965313701"},{"itemId":"17971612570"},{"itemId":"14557971286"},{"itemId":"17935166374"},{"itemId":"14659255070"},{"itemId":"14571314339"},{"itemId":"18014104805"},{"itemId":"17935100549"},{"itemId":"18081707007"},{"itemId":"18090364461"},{"itemId":"18014316712"},{"itemId":"18058800132"},{"itemId":"18080403655"},{"itemId":"18090461119"},{"itemId":"18103607481"},{"itemId":"18108655242"},{"itemId":"18094400804"},{"itemId":"18071069409"},{"itemId":"18113402610"},{"itemId":"18124964013"},{"itemId":"18118057997"},{"itemId":"17978970129"},{"itemId":"17913866078"},{"itemId":"18085366416"},{"itemId":"18157961089"},{"itemId":"18124617250"},{"itemId":"18161620246"},{"itemId":"18181064906"},{"itemId":"745157482"},{"itemId":"18140374597"},{"itemId":"18227460354"},{"itemId":"18235754276"},{"itemId":"18235754269"},{"itemId":"18178124168"},{"itemId":"18217253826"},{"itemId":"17981354243"},{"itemId":"18050173911"},{"itemId":"17921511525"},{"itemId":"18210550677"},{"itemId":"18010310433"},{"itemId":"18143354723"},{"itemId":"18210258831"},{"itemId":"18225411651"},{"itemId":"18222708574"},{"itemId":"18250257775"},{"itemId":"18120872184"},{"itemId":"18119723857"},{"itemId":"18165415352"},{"itemId":"18219900341"},{"itemId":"18102911251"},{"itemId":"18127069252"},{"itemId":"18042559640"},{"itemId":"18207567692"},{"itemId":"18138867224"},{"itemId":"18102561720"},{"itemId":"18071169546"},{"itemId":"18051724076"},{"itemId":"18217467344"},{"itemId":"18230711959"},{"itemId":"18093658467"},{"itemId":"18269754274"},{"itemId":"18211622283"},{"itemId":"18310504143"},{"itemId":"18284519554"},{"itemId":"18339870483"},{"itemId":"18310551433"},{"itemId":"18410011348"},{"itemId":"18458007697"},{"itemId":"18414951268"},{"itemId":"18414509346"},{"itemId":"18456973755"},{"itemId":"18447072366"},{"itemId":"18462016162"},{"itemId":"18484673910"},{"itemId":"18431213618"},{"itemId":"18380022060"},{"itemId":"18513919460"},{"itemId":"18561606844"},{"itemId":"18572904938"},{"itemId":"18547900817"},{"itemId":"18550258833"},{"itemId":"18563202342"},{"itemId":"18594417360"},{"itemId":"18622770295"},{"itemId":"18691661844"},{"itemId":"18633466546"},{"itemId":"18685120473"},{"itemId":"18719356870"},{"itemId":"18681701434"},{"itemId":"18705367358"},{"itemId":"18690071350"},{"itemId":"18707121636"},{"itemId":"18762909695"},{"itemId":"18878910433"},{"itemId":"18817623987"},{"itemId":"18842212571"},{"itemId":"18850308272"},{"itemId":"18869157593"},{"itemId":"18829859250"},{"itemId":"18893869606"},{"itemId":"18971156147"},{"itemId":"18980163360"},{"itemId":"18955316168"},{"itemId":"19045600542"}]}
pass
task_ips = [it["itemId"] for it in tasks.get("shop_items", [])]
if IS_DEBUG:
task_ips = task_ips[:3]
pass
logger.info(f"任务开始({len(task_ips)})") logger.info(f"任务开始({len(task_ips)})")
json_data = {"shop_items": []} json_data = {"shop_items": []}
shop_items = json_data["shop_items"] shop_items = json_data["shop_items"]
if IS_DEBUG:
# task_ips = random.choices(task_ips, k=5)
# task_ips = ["201027728", "277486534", "469411809"]
pass
success = 0 success = 0
sc = StrCounter() sc = StrCounter()
while task_ips: while task_ips:
...@@ -396,8 +399,6 @@ class Goods: ...@@ -396,8 +399,6 @@ class Goods:
except Exception as e: except Exception as e:
logger.exception(e) logger.exception(e)
logger.error(f"{self.task_name} - 任务异常 - {e}") logger.error(f"{self.task_name} - 任务异常 - {e}")
await AsyncRedisClient().close_redis()
if __name__ == "__main__": if __name__ == "__main__":
loop = asyncio.get_event_loop() loop = asyncio.get_event_loop()
......
from src.export import WFSExport
def test_WFSExport():
WFSExport("2025-02-01", "2025-02-10").run()
if __name__ == '__main__':
test_WFSExport()
import requests
headers = {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
"Accept-Language": "zh-CN,zh;q=0.9",
"Cache-Control": "no-cache",
"Connection": "keep-alive",
"Pragma": "no-cache",
"Sec-Fetch-Dest": "document",
"Sec-Fetch-Mode": "navigate",
"Sec-Fetch-Site": "none",
"Sec-Fetch-User": "?1",
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36",
"sec-ch-ua": "\"Chromium\";v=\"118\", \"Google Chrome\";v=\"118\", \"Not=A?Brand\";v=\"99\"",
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": "\"Windows\""
}
cookies = {
"ak_bmsc": "8C5D234DDBC3C5BE5EE5189E38ABB2F2~000000000000000000000000000000~YAAQUWgBF5gQcu2UAQAAuEi3NhoIs5WcoaGgSWFfDyuXvhimUZ1tIWzJqAuKiTIQ0fdqkuqX5RpqriQM+hmZHRGHD7198YU87nB3nQo42wjSW8K+vT6liW8LPBa2EmEZJabBKcq9o06ZQsFNUO1wEBQ3mvk6//F3cZrYY5Now2cELIUfwLUnfjkUiSSvq1q/a0iuo16ZBZ3k4dPvdS2m2kYCH3rF9NNN2RBYlsD9msGUXLeOc8DHvfrSTn872APs9egOMDzHcilmqq4LYvuIe01LDo6XSHeJx5aYlKo68Umvm5RjGWrX4H3jJ42BKNfywn3UWQoOyyrnjldVUdL06zMDvpMHe7PJhrbwU2zVJrz/gqRVlGNDite6BVRcybiNnKyeUvs=",
"bm_sv": "0AFB7E09ACE2B35BE403AEBA37713C7B~YAAQk+gyFwVufjWVAQAAkQvfNhoib4bJKFxcgodJZ9uxNCsQLEyxJNIBJrMEir0LB/sWMGFu7dimUNylRaADo9LZt6x2b0pzshf2n/VEvkDUguaublm8SZDVE9St8L3RtPAYQvjrXWeZygy4hqEny2lHCsv1wjT4xL5Mj9Ab4/sAODlJjRySpAVN85nXEjVsgP2hkTZZAUNYvrBfDyMlpw5WTfKaD0YHQBcmots82t5W4toZG5aDLL9HTf8SV5rBi7qhUDI=~1",
"TSaf1ede28027": "0800b316f6ab2000520868722a76791b18fa14a9824dc2976821dad8905d7c43dc43711f69d8e2a00827a65cb61130008d29006038c400850fe9db236c7784ca48072ae069dde9fd37b9610a457640b557818e0b366e7b86cd37b1bb603ea5d4",
"TS89e05807027": "08cb8c7367ab2000364e99bb60e31ce6fa69fe45e90e55cb31514801f124bb981208d52ba8c33d2f08e1c6b4f0113000363d3b498677d1a91f31970e0c58f80322671c2d354b603eeeb08503420532466767670670984eb0fc36ebd15325df8c"
}
url = "https://marketplace.walmartapis.com/v3/reports/getReport/order-report/PO_Data_100025456602025-02-24-06-10-43-622.xlsx"
params = {
"sv": "2023-08-03",
"se": "2025-02-24T07:54:57Z",
"sr": "b",
"sp": "r",
"sig": "6MXgDrPOxGSSuHfxbpHDa3LiTT2pHLLHAS+Zrh+FyCs="
}
response = requests.get(url, headers=headers, cookies=cookies, params=params)
print(response.text)
print(response)
\ No newline at end of file
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