爬虫自动化--playwright
·
网站: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}")
更多推荐
所有评论(0)