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

如何在Power BI中调用Python爬虫生成国家所属大洲自定义列

在Power BI中通过Python脚本生成国家所属大洲列的实现步骤

1. 准备Power BI的Python依赖环境

Power BI默认Python环境通常没有requests和BeautifulSoup4,需要先安装:

  • 找到Power BI使用的Python路径(通常在C:\Program Files\Microsoft Power BI Desktop\bin\Python\python.exe,或你自定义的Python环境)
  • 打开命令提示符,执行安装命令:
pip install requests beautifulsoup4

2. 在Power BI中编写适配脚本生成新列

假设报表第一列列名为国家(列名不同请自行替换),操作步骤如下:

  1. 加载数据集到Power BI,切换到数据视图
  2. 点击顶部菜单栏的添加列,选择Python脚本
  3. 在脚本编辑器中替换默认代码为以下内容:
import requests
from bs4 import BeautifulSoup
import pandas as pd

# 定义获取大洲的函数,适配维基百科URL格式
def get_continent(country_name):
    # 把国家名称的空格替换为下划线,匹配维基百科页面命名规则
    formatted_country = country_name.replace(" ", "_")
    url = f"https://en.wikipedia.org/wiki/Geography_of_{formatted_country}"
    
    try:
        response = requests.get(url, timeout=10)
        response.raise_for_status()  # 校验请求是否成功
        soup = BeautifulSoup(response.content, "html.parser")
        # 定位大洲信息单元格
        continent_element = soup.select_one("th:-soup-contains(Continent) + td")
        if continent_element:
            # 清理文本中的换行和多余空格
            return continent_element.text.strip()
        else:
            return "未找到"
    except Exception as e:
        # 捕获请求失败、页面不存在等异常
        return f"获取失败: {str(e)}"

# 对"国家"列批量应用函数,生成新列
df['所属大洲'] = df['国家'].apply(get_continent)
  1. 点击确定,Power BI会执行脚本并生成所属大洲新列

3. 关键注意事项

  • 页面格式兼容:部分国家的维基百科地理页面结构可能特殊,若出现大量"未找到",需针对特定国家调整选择器逻辑
  • 反爬限制:频繁请求维基百科可能触发拦截,建议先小批量测试,必要时在函数中添加time.sleep(1)(需导入time库)控制请求间隔
  • 列名匹配:确保代码中df['国家']与数据集第一列的列名完全一致,大小写敏感

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 17:25:51