You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Selenium爬取Opensea排名页面表格出现列数据缺失问题求助

问题根因
  • Opensea排名页的表格采用虚拟滚动和响应式渲染逻辑,仅当前浏览器视口内的单元格会被渲染到DOM中,视口外的列、行内容默认不会生成,直接抓取外层容器文本只能拿到当前可见的部分内容。
  • 你使用的find_element_by_xpath是Selenium高版本已废弃的API,元素匹配稳定性不足。
  • 没有触发页面滚动加载逻辑,榜单默认仅加载前10条左右数据,后续内容需要下滑页面才会动态生成。
  • 浏览器窗口过小会导致Opensea自动隐藏表格靠后的列,也是你只能拿到5项数据的核心原因。
修复后的实现代码
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
import pandas as pd

# 配置Chrome参数,避免反爬拦截
options = webdriver.ChromeOptions()
options.add_argument('--disable-blink-features=AutomationControlled')
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)

PATH = '替换为你的chromedriver本地路径'
driver = webdriver.Chrome(PATH, options=options)
# 最大化窗口,确保所有表格列都正常渲染
driver.maximize_window()

driver.get('https://opensea.io/rankings')
# 等待表格元素加载完成
wait = WebDriverWait(driver, 10)
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '[data-testid="rankings-table-row"]')))

# 模拟滚动加载全量数据,滚动次数可根据需要抓取的榜单长度调整
scroll_times = 5
for _ in range(scroll_times):
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    time.sleep(2)
    wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '[data-testid="rankings-table-row"]')))

# 逐行逐单元格抓取数据
rows = driver.find_elements(By.CSS_SELECTOR, '[data-testid="rankings-table-row"]')
result = []
for row in rows:
    cells = row.find_elements(By.CSS_SELECTOR, '[data-testid="rankings-table-cell"]')
    row_data = [cell.text.strip() for cell in cells if cell.text.strip()]
    if row_data:
        result.append(row_data)
        print(row_data)

# 可按需导出为csv文件
# pd.DataFrame(result).to_csv('opensea_rankings.csv', index=False, encoding='utf-8-sig')

driver.quit()
注意事项
  • 运行前请确认Chrome浏览器和ChromeDriver版本完全匹配,避免驱动启动报错。
  • 如果触发人机验证,可手动完成验证后再继续运行,频繁请求时建议搭配代理IP降低限流概率。
  • 不要短时间内频繁发起爬取请求,避免被平台限制访问。

内容的提问来源于stack exchange,提问作者hengjuice

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 17:54:08