使用Playwright设置AliExpress(速卖通)默认语言的方法
解决速卖通页面语言设置问题
针对你的需求,有三种可行的方法来强制设置速卖通页面为目标语言(以西班牙语为例):
方法一:URL参数直接指定语言
速卖通支持通过URL参数language强制指定页面语言,西班牙语对应参数值为es。你可以直接修改请求的URL,无需操作页面控件:
from playwright.async_api import async_playwright async def aliexpress(browser_url, product_url): async with async_playwright() as pw: browser = await pw.chromium.connect_over_cdp(browser_url) try: # 给URL添加语言参数 if "?" in product_url: product_url = f"{product_url}&language=es" else: product_url = f"{product_url}?language=es" page = await browser.new_page() await page.goto(product_url, timeout=None) nav_description = await page.locator('#product-description').inner_text() print(nav_description) return nav_description finally: await browser.close()
方法二:操作页面语言切换控件
如果URL参数失效,可以直接定位页面上的语言切换组件完成设置。注意速卖通的DOM结构可能会更新,以下定位器需根据实际页面调整:
from playwright.async_api import async_playwright async def aliexpress(browser_url, product_url): async with async_playwright() as pw: browser = await pw.chromium.connect_over_cdp(browser_url) try: page = await browser.new_page() await page.goto(product_url, timeout=None) # 检查当前语言是否为西班牙语,以页面顶部语言显示文本为例 current_lang = await page.locator(".top-lang-selector .current-lang").inner_text() if "Español" not in current_lang: # 点击语言切换按钮 await page.locator(".top-lang-selector").click() # 选择西班牙语选项(根据实际文本或属性定位) await page.locator('text="Español"').click() # 等待页面刷新完成 await page.wait_for_load_state("networkidle") nav_description = await page.locator('#product-description').inner_text() print(nav_description) return nav_description finally: await browser.close()
方法三:设置浏览器Locale偏好
在创建页面时指定浏览器的语言区域设置,让速卖通自动匹配目标语言:
from playwright.async_api import async_playwright async def aliexpress(browser_url, product_url): async with async_playwright() as pw: browser = await pw.chromium.connect_over_cdp(browser_url) try: # 创建页面时指定西班牙语区域 page = await browser.new_page(locale="es-ES") await page.goto(product_url, timeout=None) nav_description = await page.locator('#product-description').inner_text() print(nav_description) return nav_description finally: await browser.close()
注意事项
- 方法一优先级最高,实现最简单,推荐优先使用;
- 方法二需注意DOM结构变化,若定位器失效,需通过浏览器开发者工具重新获取最新的选择器;
- 方法三依赖速卖通的语言检测逻辑,部分场景下可能被IP地区覆盖,需结合实际情况测试。
内容的提问来源于stack exchange,提问作者bawse
相关产品推荐
相关产品推荐

