网站:coupang

翻页的时候总是有问题,得到的数据和浏览器打开的不一样,已经翻到第二页了,代码得到的数据还是第一页的。

Coupang的翻页是异步加载,是SPA(单页应用)行为,不是真正的整页刷新。

点击翻页之后,要进行等待

page.wait_for_url("**/search?q=samsung&page=2", timeout=10000)

等待url变了,才进行之后的操作

def run(playwright):
    browser = playwright.chromium.launch(headless=False)
    page = browser.new_page()

    page.goto("https://www.coupang.com/np/search?q=samsung", timeout=60000)
    
    #使用 evaluate 获取当前URL
    initial_url = page.evaluate("() => window.location.href")
    print(f"初始URL: {initial_url}")

    # 定位第二页按钮并点击
    next_bt1 = page.locator("a[data-page='2']")
    next_bt1.click()

    # --- 这里是关键的改进 ---
    # 最好的信号就是等待URL本身发生变化!
    # Playwright的 wait_for_url 非常智能,它可以监听到由 History API 引起的URL变化
    # 使用 ** 通配符来匹配任意前缀
    page.wait_for_url("**/search?q=samsung&page=2", timeout=10000)
    print("URL已成功变为第2页!")


    # 现在,我们再次用 evaluate 获取更新后的URL
    current_url = page.evaluate("() => window.location.href")
    print(f"点击后的URL: {current_url}")

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐