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

使用requests+BeautifulSoup爬取页面无法获取<div id='App'>完整内容的求助

解决动态渲染页面的爬取问题(无需Selenium)

方法一:直接抓取后端数据接口

这类单页应用的内容由JavaScript通过异步接口加载,直接请求数据接口是最高效的方案:

  1. 打开Edge开发者工具(F12),切换到「网络」标签页。
  2. 刷新页面,筛选「XHR/Fetch」类型请求,定位返回目标内容的API接口。
  3. 复制接口的URL、请求头及参数,用requests直接调用该接口,获取的JSON数据就是<div id='App'>的渲染源,可直接解析或按需生成HTML。

方法二:使用支持JS渲染的请求库(requests-html)

requests-html可加载并执行页面JS,同时支持证书配置,还能指定Edge浏览器路径复用其证书环境:

  1. 安装依赖:
    pip install requests-html
    
  2. 编写代码:
    from requests_html import HTMLSession
    from bs4 import BeautifulSoup
    
    # 指定本地Edge浏览器可执行文件路径(Windows示例,自行调整)
    edge_exec_path = r"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
    # 初始化会话,指定Edge作为渲染浏览器
    session = HTMLSession(browser_args=[f'--executable-path={edge_exec_path}'])
    
    # 配置证书信息
    cert = (certs['cert'], certs['password'])
    response = session.get(url, cert=cert, verify=certs['CA_file'])
    
    # 等待页面JS渲染完成
    response.html.render()
    
    # 解析渲染后的完整HTML
    soup = BeautifulSoup(response.html.html, 'html.parser')
    app_div_content = soup.find('div', id='App')
    print(app_div_content)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 13:45:17