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

使用Python Selenium获取innerHTML失败问题求助

搞定JS渲染页面的内容抓取问题

嘿,这个问题我太熟了!你遇到的就是静态HTTP请求拿不到JS动态渲染内容的经典坑——普通的请求工具(比如requests)只能拿到服务器返回的静态HTML骨架,而浏览器里看到的那些动态内容,是页面里的JS脚本在客户端执行后生成的,所以直接取innerHTML自然拿不到。既然你已经能搞定登录和导航,那用支持JS渲染的自动化工具就能完美解决,给你两个常用方案:

方案一:用Selenium(最通用的老牌工具)

Selenium能完全模拟真实浏览器的行为,把JS渲染后的DOM完整加载出来,步骤很清晰:

  1. 先装依赖:pip install selenium,然后下载对应浏览器的驱动(比如ChromeDriver,要和你电脑上的Chrome版本匹配)
  2. 示例代码(核心部分):
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

# 初始化Chrome浏览器驱动
driver = webdriver.Chrome()

try:
    # 这里直接复用你已经写好的登录代码
    driver.get("你的登录URL")
    # ... 输入账号、密码、点击登录按钮的操作 ...

    # 导航到目标页面
    driver.get("目标URL")

    # 重点:等待目标元素加载完成!JS渲染需要时间,不能刚跳转就拿内容
    wait = WebDriverWait(driver, 10)  # 最多等10秒
    first_div = wait.until(EC.presence_of_element_located((By.TAG_NAME, "div")))

    # 现在就能拿到渲染后的innerHTML了
    rendered_html = first_div.get_attribute("innerHTML")
    print(rendered_html)
finally:
    # 用完记得关浏览器
    driver.quit()

方案二:用Playwright(更现代,无需手动装驱动)

Playwright是微软出的新工具,支持多浏览器,还自带驱动,用起来更省心:

  1. 装依赖:pip install playwright,然后跑playwright install自动安装浏览器驱动
  2. 示例代码:
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    # 启动Chrome浏览器(headless=False可以看到窗口,调试方便)
    browser = p.chromium.launch(headless=False)
    page = browser.new_page()

    # 复用你的登录逻辑
    page.goto("你的登录URL")
    # ... 比如page.fill("#username", "你的账号")这类登录操作 ...

    # 跳转到目标页面
    page.goto("目标URL")

    # 等待第一个div元素加载完成
    page.wait_for_selector("div")

    # 获取第一个div的innerHTML
    rendered_html = page.locator("div").first.inner_html()
    print(rendered_html)

    browser.close()

为啥之前的方法不行?

再给你补个小知识点:普通的HTTP请求只会拿到服务器返回的“原始HTML”,里面只有JS脚本的引用,不会执行这些脚本。而浏览器会自动下载并执行JS,动态生成DOM元素——你在浏览器开发者工具里看到的内容,就是执行JS后的最终DOM,这部分只有用能模拟浏览器的工具才能抓取到。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:07:15