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

欧洲议会网站MEP信息爬取求助:将行存储数据转为列结构

问题:将欧洲议会议员信息从多行文本转为三列结构

我正在爬取欧洲议会议员(MEP)的信息,通过CSS类.sln-additional-info获取到了每位议员的党派、所属国家等信息。目前用以下R代码获取到的文本,每个议员对应三行内容,现在需要把这些内容转换成三列的结构化数据:

url <- "https://www.europarl.europa.eu/meps/it/full-list/all"
html <- read_html(url)

info_html <- html_elements(html,".sln-additional-info")
info <- html_text(info_html)

解决方案

直接对获取到的多行文本做分割和结构化处理即可,代码如下:

library(rvest)
library(tibble)
library(stringr)

# 原有爬取代码
url <- "https://www.europarl.europa.eu/meps/it/full-list/all"
html <- read_html(url)
info_html <- html_elements(html,".sln-additional-info")
info <- html_text(info_html)

# 拆分每行文本并清理空白内容
split_info <- str_split(info, "\\n", simplify = TRUE) %>%
  apply(1, function(x) str_squish(x[x != ""])) %>%
  do.call(rbind, .)

# 转换为带列名的数据框
mep_info <- as_tibble(split_info) %>%
  rename(
    议员姓名 = V1,
    所属党派 = V2,
    所属国家 = V3
  )

# 查看前几行结果
head(mep_info)

代码说明

  • str_split(info, "\\n", simplify = TRUE):把每个议员的多行文本按换行符拆分成矩阵格式;
  • apply(1, function(x) str_squish(x[x != ""])):遍历每一行,过滤掉空行,同时清理文本前后的空格和中间的多余空格;
  • do.call(rbind, .):把处理后的列表转换成统一的矩阵,方便转成数据框;
  • 最后用rename给列命名,你可以根据实际爬取的文本内容调整列名(比如如果第一行不是姓名,就改成对应的内容)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 23:55:10