modified: amazon/match_action.py

modified:   amazon/price_match.py
	modified:   config.py
This commit is contained in:
铭坤
2026-04-19 00:18:28 +08:00
parent 8d683a791d
commit 07904a29aa
3 changed files with 56 additions and 17 deletions

View File

@@ -93,6 +93,7 @@ class AmzoneMatchAction(AmamzonBase):
num = 0
retry_num = 0
already_asin = set()
get_page_faild = 0
while retry_num < 3: # 最多重试3次
# if num > 3: #测试
@@ -117,9 +118,13 @@ class AmzoneMatchAction(AmamzonBase):
else:
total_page = 0
print(f"{self.mark_name}】当前页码: {current_page} / 总页数: {total_page}")
get_page_faild = 0
except Exception as e:
print(f"{self.mark_name}】获取页码失败", e)
get_page_faild+= 1
if get_page_faild > 2:
show_notification(f"{self.mark_name}】获取页码失败超3次停止任务")
break
sku_ls = self.tab.eles("xpath://div[@data-sku]",timeout=10)
print(f"{self.mark_name}】获取到 {len(sku_ls)}")

View File

@@ -1,14 +1,17 @@
import time
import re
import traceback
from config import runing_task, runing_shop
from datetime import datetime
from amazon.del_brand import AmamzonBase, kill_process
from DrissionPage import Chromium, ChromiumOptions
from amazon.del_brand import AmamzonBase, kill_process
from amazon.tool import show_notification,get_shop_info
from config import runing_task, runing_shop,base_dir
class ChromeAmzone:
mark_name = "亚马逊详情采集"
country_info = {
"英国": {
@@ -43,21 +46,46 @@ class ChromeAmzone:
os.system('taskkill /f /t /im chrome.exe')
time.sleep(2)
# 使用 DrissionPage 启动浏览器(使用默认用户数据)
from DrissionPage import Chromium, ChromiumOptions
print("正在启动Chrome浏览器...")
# sellersprite_plug_path = os.path.join(base_dir,"app_resource","sellersprite-extension-mv3")
sellersprite_plug_path = os.path.join("D:\\私单交付\\maixiang_AI\\","app_resource","sellersprite-extension-mv3")
print(sellersprite_plug_path)
# 配置浏览器选项
co = ChromiumOptions()
# co.use_system_user_path(on_off=True)
co.set_user_data_path(r"D:\私单交付\maixiang_AI\user_data\chrome_data")
co.set_local_port(port=19890)
co.add_extension(sellersprite_plug_path)
# co.set_argument('--disable-features=DisableLoadExtensionCommandLineSwitch')
# co.set_argument('--load-extension',sellersprite_plug_path)
co.set_browser_path(r'D:\私单交付\maixiang_AI\app_resource\chrome-win\chrome.exe')
# 使用系统默认的用户数据目录
# co.set_user_data_path(r'C:\Users\{}\AppData\Local\Google\Chrome\User Data'.format(os.getenv('USERNAME')))
self.browser = Chromium(co)
self.tab = self.browser.latest_tab
print("Chrome浏览器启动成功")
def accept_cookie(self):
pass
def close_init_popup(self):
"""
关闭所有的初始化弹窗
"""
self.tab.wait.doc_loaded(timeout=60,raise_err=True)
footbar = self.tab.eles('xpath://footer[@class="el-dialog__footer"]',timeout=5)
if len(footbar) > 0:
do_not_remind = footbar[0].eles('xpath:.//input[@class="el-checkbox__original"]')
if len(do_not_remind) > 0:
do_not_remind[0].check()
resume_immediately = footbar[0].eles('xpath:.//button')
if len(resume_immediately) > 0:
resume_immediately[0].click()
self.tab.wait.doc_loaded(timeout=60,raise_err=True)
accept_btn = self.tab.eles('xpath://input[@id="sp-cc-accept"]',timeout=10)
if len(accept_btn) > 0:
accept_btn[0].click()
def run(self, country, asin):
"""
@@ -98,6 +126,9 @@ class ChromeAmzone:
# 2. 切换国家/设置邮编
print(f"正在检查并设置邮编: {zip_code}")
self._set_zip_code(zip_code)
self.close_init_popup()
# 3. 抓取数据
print("正在抓取商品数据...")
@@ -317,14 +348,14 @@ if __name__ == '__main__':
print(f"采集成功: {result1}")
# 示例2采集德国站点的商品信息
print("\n示例2采集德国站点商品")
result2 = chrome.run(country="德国", asin="B0CC8CW9G2")
if result2:
print(f"采集成功: {result2}")
# print("\n示例2采集德国站点商品")
# result2 = chrome.run(country="德国", asin="B0CC8CW9G2")
# if result2:
# print(f"采集成功: {result2}")
# 关闭浏览器
print("\n正在关闭浏览器...")
chrome.close()
# # 关闭浏览器
# print("\n正在关闭浏览器...")
# chrome.close()
except Exception as e:
print(f"运行出错: {traceback.format_exc()}")