Barry300721 2024-05-23 17:54 采纳率: 0%
浏览 2

Power BI 爬網頁資料問題詢問


我如果POWER BI要爬這個網頁資料,因為112代表年分 11代表月份
但當我想要爬出110-112年 並且1-12月的資料出來

並且進行合併我該如何做

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-23 17:54
    关注

    引自免费微信小程序:皆我百晓生

    在Power BI中直接爬取网页数据并不支持动态参数,因此你需要先使用Python或其他编程语言(例如Python)来抓取不同日期范围的数据,然后将这些数据导入到Power BI进行分析。这里是一个基本的步骤指南和Python代码示例来实现这个目标。

    首先,确保你已经安装了必要的库,包括requestsBeautifulSoup。如果没有安装,可以使用以下命令安装:

    pip install requests beautifulsoup4 pandas
    

    接下来,编写一个Python脚本来抓取每个月的数据,并保存为CSV文件,然后再将这些CSV文件导入到Power BI进行合并分析。这是一个简单的Python脚本示例:

    import requests
    from bs4 import BeautifulSoup
    import csv
    import pandas as pd
    import os
    
    # 年份列表
    years = [2010, 2011, 2012]
    # 月份列表
    months = range(1, 13)
    
    # 创建一个空列表来存储所有数据
    all_data = []
    
    for year in years:
        for month in months:
            url = f"https://mops.twse.com.tw/nas/t21/sii/t21sc03_{year:04d}_{month:02d}_0.html"
            response = requests.get(url)
            
            if response.status_code == 200:
                soup = BeautifulSoup(response.text, 'html.parser')
                
                table = soup.find('table', attrs={'class': 'table_list'})
                rows = table.tbody.find_all('tr')
    
                # 处理表头
                headers = [th.text.strip() for th in rows[0].find_all('th')]
    
                for row in rows[1:]:
                    data = [td.text.strip() for td in row.find_all('td')]
                    all_data.append(data)
            else:
                print(f"Failed to fetch data from {url}")
    
    # 将数据转换为Pandas DataFrame并保存为CSV
    df = pd.DataFrame(all_data, columns=headers)
    df.to_csv("twse_data.csv", index=False)
    
    print("Data extraction completed.")
    

    这段代码会创建一个名为twse_data.csv的CSV文件,包含指定年份和月份的所有数据。然后,你可以在Power BI中使用“获取数据”功能,选择“从文件”->“从CSV”,找到这个CSV文件,然后按照提示进行数据加载和合并。

    如果你希望在Power BI中直接处理这个CSV文件,可以使用Power Query(也称为“查询编辑器”)。在Power BI Desktop中,点击“主页”选项卡,然后选择“新建查询” -> “从文件” -> “从文本/CSV”。之后,根据向导指示操作,Power BI会自动识别和整理CSV中的数据。

    注意:由于网页结构可能会变化,这段代码可能需要根据实际页面布局进行调整。此外,网站可能有反爬虫机制,频繁请求可能会导致IP被封禁。在大规模抓取时,建议添加适当的延迟,或者使用更专业的网络抓取工具,比如Scrapy。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月23日

悬赏问题

  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 在虚拟机环境下完成以下,要求截图!
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见