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

使用Selenium抓取Semrush中burton.com数据遇报错及登录问题求助

解决Semrush数据抓取的Selenium问题

一、DeprecationWarning 警告处理

这类警告源于Selenium版本与旧语法不兼容,比如find_element_by_*系列方法已被弃用,处理方式如下:

  • 替换旧定位语法:改用By类指定定位方式,需先导入from selenium.webdriver.common.by import By,例如:
    # 旧写法
    # driver.find_element_by_xpath("//div[@class='score']")
    # 新写法
    driver.find_element(By.XPATH, "//div[@class='score']")
    
  • 更新Selenium版本:执行pip install --upgrade selenium升级到最新稳定版,避免版本兼容问题

二、NoSuchElementException 错误排查

这个错误是代码找不到目标元素,核心原因大概率和未登录有关,结合其他可能原因逐一解决:

  1. 必须登录免费账号:Semrush的核心数据(权威评分、自然流量、反向链接)仅对登录用户开放,未登录状态下页面不会渲染这些元素。需在脚本中加入登录逻辑:
    # 跳转登录页
    driver.get("https://www.semrush.com/login/")
    # 输入账号密码(替换为你的免费账号信息)
    driver.find_element(By.ID, "email").send_keys("your-email@example.com")
    driver.find_element(By.ID, "password").send_keys("your-password")
    # 提交登录
    driver.find_element(By.XPATH, "//button[@type='submit']").click()
    # 等待登录完成后,再跳转至burton.com的分析页
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    WebDriverWait(driver, 10).until(EC.url_contains("dashboard"))
    driver.get("https://www.semrush.com/analytics/overview/?q=burton.com")
    
  2. 等待元素加载完成:页面动态渲染时,直接定位元素会失败,用显式等待替代强制等待:
    # 等待权威评分元素加载,最长等待10秒
    authority_score = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.CSS_SELECTOR, "div.authority-score"))
    ).text
    
  3. 检查iframe嵌套:如果目标元素在iframe内,需先切换到iframe再定位:
    # 找到目标iframe并切换上下文
    iframe = driver.find_element(By.ID, "analytics-frame")
    driver.switch_to.frame(iframe)
    # 执行元素定位操作...
    # 操作完成后切回主文档
    driver.switch_to.default_content()
    

三、反爬与稳定性优化

  • 加入随机延迟:Semrush有反爬机制,每次操作后添加time.sleep(random.uniform(2, 5))避免频繁请求被封
  • 优化定位方式:优先使用ID、CSS选择器代替XPATH,减少因页面结构变动导致的定位失效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 01:25:37