网易云课堂目录提取脚本

前言

网易云课堂(study.163.com)页面是动态渲染的,浏览器检查元素能看到
但是requests + BeautifulSoup 抓不到,因为HTML 源码里没有这些内容

所以我们需要使用 Playwright(或 Selenium)才能抓到真实内容

准备工作

先安装库

pip install playwright
playwright install

然后运行脚本,执行的时候会出现一个谷歌浏览器,让它开启不要关掉它

from playwright.sync_api import sync_playwright

url = "https://study.163.com/course/introduction.htm?courseId=1213365801#/courseDetail?tab=1"

with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)  # 看到真实加载过程
    page = browser.new_page()
    page.goto(url)
    
    # 网易课程需要等待渲染成功(非常关键,否则抓不到)
    page.wait_for_selector(".ksname")

    # 抓取所有 class="ksname" 的 title 文本
    titles = page.eval_on_selector_all(
        ".ksname",
        "els => els.map(e => e.getAttribute('title'))"
    )

    for i, t in enumerate(titles, 1):
        print(i, t)

    browser.close()

效果

Snipaste_2025-12-07_20-48-21-min

什么必须用 Playwright?

因为 study.163.com 的页面是:

  • 用 Vue/React 动态加载

  • 内容是 AJAX 请求回来后插入 DOM

  • requests 获取到的源码里完全没有 .ksname

请登录后发表评论

    没有回复内容