在 R 中从维基百科中抓取表格

Sha*_*ani 1 wikipedia r web-scraping

我想知道是否有人对维基百科的网络抓取表有有用的想法或代码。

具体来说,我对维基百科“各县结果”部分中的总统选举结果表感兴趣。

使用以下链接并向下滚动到“按县划分的结果”部分可以找到示例表:https ://en.wikipedia.org/wiki/1948_United_States_presidential_election_in_Texas

该表如下所示: 在此输入图像描述

我尝试了以下 StackOverflow 帖子中的一些解决方案:在 R 中导入维基百科表

然而,它们似乎不适用于我想在维基百科中抓取的表格类型。

任何建议、解决方案或代码将不胜感激。谢谢你!

ste*_*fan 5

利用该rvest包,您可以通过首先选择包含所需表格的元素来获取表格html_element("table.wikitable.sortable"),然后通过提取表格html_table()如下方式提取表格:

\n
library(rvest)\n\nurl <- "https://en.wikipedia.org/wiki/1948_United_States_presidential_election_in_Texas"\n\nhtml <- read_html(url)\n\ncounty_table <- html %>% \n  html_element("table.wikitable.sortable") %>% \n  html_table()\n\nhead(county_table)\n#> # A tibble: 6 x 14\n#>   County  `Harry S. Truman\xe2\x80\xa6 `Harry S. Truman\xe2\x80\xa6 `Thomas E. Dewey\xe2\x80\xa6 `Thomas E. Dewe\xe2\x80\xa6\n#>   <chr>   <chr>             <chr>             <chr>             <chr>           \n#> 1 County  #                 %                 #                 %               \n#> 2 Anders\xe2\x80\xa6 3,242             62.37%            1,199             23.07%          \n#> 3 Andrews 816               85.27%            101               10.55%          \n#> 4 Angeli\xe2\x80\xa6 4,377             69.05%            1,000             15.78%          \n#> 5 Aransas 418               61.02%            235               34.31%          \n#> 6 Archer  1,599             86.20%            191               10.30%          \n#> # \xe2\x80\xa6 with 9 more variables: Strom ThurmondStates\xe2\x80\x99 Rights Democratic <chr>,\n#> #   Strom ThurmondStates\xe2\x80\x99 Rights Democratic.1 <chr>,\n#> #   Henry A. WallaceProgressive <chr>, Henry A. WallaceProgressive.1 <chr>,\n#> #   Various candidatesOther parties <chr>,\n#> #   Various candidatesOther parties.1 <chr>, Margin <chr>, Margin.1 <chr>,\n#> #   Total votes cast[11] <chr>\n
Run Code Online (Sandbox Code Playgroud)\n