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

Azure RBAC资源提供方操作页面表格爬取及CSV导出问题求助

Azure RBAC资源提供方操作页面表格爬取及CSV导出问题求助

嘿,我看你在爬取Azure RBAC资源提供方操作页面的表格并导出为CSV时碰到了两个头疼的问题——只能拿到页面末尾的少量表格,而且导出的内容还不是正确的CSV格式。这就来帮你捋清楚问题出在哪,再给你调整好的解决方案!

问题根源分析

  • 动态内容没被正确抓取:你代码里同时用了Selenium和requests,但实际解析页面时用的是requests.get(url)返回的静态页面内容,而Selenium打开浏览器加载的动态页面完全没派上用场。那个Azure文档页面的表格大概率是通过JavaScript动态渲染的,静态请求根本拿不到完整内容,这就是你只能看到末尾少数表格的原因。
  • 表格解析逻辑错误:你直接把BeautifulSoup的table对象写入CSV,这显然不对——CSV需要的是结构化的文本行,你得先遍历表格里的每一行、每个单元格,提取出文本内容再整理成CSV的行格式。

修正后的完整代码

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from bs4 import BeautifulSoup
import csv
import time

# 配置Chrome无头模式
chrome_options = Options()
chrome_options.add_argument("--headless=new")
chrome_options.add_argument("--disable-gpu")

# 初始化浏览器并加载页面
url = "https://learn.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations"
driver = webdriver.Chrome(options=chrome_options)
driver.get(url)

# 等待页面完全加载(给JS留足渲染所有表格的时间,可根据网络情况调整)
time.sleep(3)

# 用Selenium加载完成后的页面源码来解析
soup = BeautifulSoup(driver.page_source, 'html.parser')
driver.quit()  # 用完浏览器记得关闭,释放资源

# 找到页面中所有的表格
tables = soup.find_all("table")

# 写入CSV文件
with open('azure_rbac_operations.csv', 'w', newline='', encoding='utf-8') as csvfile:
    writer = csv.writer(csvfile, quoting=csv.QUOTE_ALL)
    for table in tables:
        # 遍历当前表格的每一行
        for row in table.find_all("tr"):
            # 提取该行每个单元格的文本,自动去除多余的空格和换行
            cells = [cell.get_text(strip=True) for cell in row.find_all(["td", "th"])]
            # 将整理好的单元格内容写入CSV的一行
            writer.writerow(cells)

print("所有表格已成功导出为CSV文件!")

代码调整说明

  • 改用Selenium渲染后的页面内容:放弃静态的requests.get,直接用driver.page_source获取Selenium加载完成的完整页面,确保所有动态渲染的表格都能被抓取到。
  • 增加页面等待时间:用time.sleep(3)给页面的JavaScript留足渲染所有表格的时间,如果你的网络较慢,可以适当延长这个时长。
  • 正确解析表格为CSV行:遍历每个表格的每一行(<tr>标签),再提取每行里的表头单元格(<th>)和数据单元格(<td>)的文本内容,整理成列表后再写入CSV,这样导出的就是标准的CSV格式了。
  • 优化编码与资源释放:指定encoding='utf-8'避免导出时出现中文乱码,用完浏览器后调用driver.quit()及时释放系统资源。

备注:内容来源于stack exchange,提问作者Dave

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 08:49:33