带有rvest的r scrape表(iframe问题?)

发布于 2025-02-06 17:01:25 字数 666 浏览 1 评论 0原文

我想使用rvest在网站上刮擦一张桌子。我可以在页面上刮擦几个元素,但该表中的表也不是元素。我怀疑这与表是“ iframe”有关的事情,但是到目前为止,我还没有找到 +刮擦源HTML。

非常感谢! 阿德里安

# set up
library(rvest)
library(tidyverse)

# scraping
url <- "https://u.gg/lol/top-lane-tier-list?rank=iron"

main_page <- read_html(url)
patch <- html_node(main_page, "#stats-tables-container-ID > div.title-header > h1 > div") %>% html_text()
rank <- html_node(main_page, ".rank-option") %>% html_text()
table <- html_table(main_page, ".#stats-tables-container-ID > div.stats-tables__content-container > div > div > div > div.content-section.ReactTable.ugg-table-2.tier-list")

I want to scrape a table on a website using rvest. I can scrape several elements on the page but not the table nor elements within this table. I suspect this has something to do with the table being an "iframe" but so far I failed to find + scrape the source html.

Many thanks in advance!
Adrien

# set up
library(rvest)
library(tidyverse)

# scraping
url <- "https://u.gg/lol/top-lane-tier-list?rank=iron"

main_page <- read_html(url)
patch <- html_node(main_page, "#stats-tables-container-ID > div.title-header > h1 > div") %>% html_text()
rank <- html_node(main_page, ".rank-option") %>% html_text()
table <- html_table(main_page, ".#stats-tables-container-ID > div.stats-tables__content-container > div > div > div > div.content-section.ReactTable.ugg-table-2.tier-list")

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

誰ツ都不明白 2025-02-13 17:01:25

我能够提取桌子,但没有rvest。我使用以下代码:

library(stringr)
library(RSelenium)
url <- "https://u.gg/lol/top-lane-tier-list?rank=iron"
shell('docker run -d -p 4445:4444 selenium/standalone-firefox')
remDr <- remoteDriver(remoteServerAddr = "localhost", port = 4445L, browserName = "firefox")
remDr$open()
remDr$navigate(url)

web_Obj_Table <- remDr$findElement("xpath", '//*[@id="stats-tables-container-ID"]/div[6]/div/div/div/div[1]')
text_Table <-  web_Obj_Table$getElementText()
text_Table <- stringr::str_split(text_Table, "\n")

我获得了以下结果:

[1] "Rank"          "Role"          "Champion"      "Tier"          "Win Rate"      "Pick Rate"     "Ban Rate"     
  [8] "Counter Picks" "Matches"       "1"             "Dr. Mundo"     "S+"            "55.49%"        "5.1%"         
 [15] "4.6%"          "9,032"         "2"             "Yorick"        "S+"            "53.88%"        "3.7%"         
 [22] "6.0%"          "6,596"         "3"             "Lillia"        "A"             "53.38%"        "2.0%"         
 [29] "3.9%"          "3,522"         "4"             "Illaoi"        "S+"            "53.18%"        "6.1%"         
 [36] "19.6%"         "10,881"        "5"             "Singed"        "A"             "53.14%"        "1.2%"         
 [43] "0.6%"          "2,215"         "6"             "Mordekaiser"   "S+"            "52.88%"        "12.2%"        
 [50] "18.9%"         "21,753"        "7"             "Sett"          "S+"            "52.06%"        "11.1%"        
 [57] "12.3%"         "19,846"        "8"             "Trundle"       "A"             "51.92%"        "1.5%"         
 [64] "4.4%"          "2,687"         "9"             "Urgot"         "S"             "51.87%"        "4.3%"         
 [71] "4.2%"          "7,608"         "10"            "Garen"         "S+"            "51.84%"        "9.9%"         
 [78] "4.9%"          "17,640"        "11"            "Tahm Kench"    "A"             "51.77%"        "2.5%"         
 [85] "2.3%"          "4,516"         "12"            "Teemo"         "S+"            "51.55%"        "10.6%"        
 [92] "25.7%"         "18,969"        "13"            "Swain"         "A"             "51.47%"        "1.2%"         
 [99] "10.7%"         "2,139"         "14"            "Volibear"      "S"             "51.12%"        "5.9%"         
[106] "9.0%"          "10,450"        "15"            "Nasus"         "S"             "50.99%"        "6.3%"         
[113] "5.4%"          "11,211"        "16"            "Olaf"          "S"             "50.96%"        "5.2%"         
[120] "7.7%"          "9,361"         "17"            "Ornn"          "A"             "50.77%"        "2.5%"         
[127] "0.6%"          "4,536"         "18"            "Shen"          "A"             "50.70%"        "1.9%"         
[134] "0.3%"          "3,414"         "19"            "Jax"           "A"             "50.42%"        "6.9%"         
[141] "6.2%"          "12,285"        "20"            "Wukong"        "A"             "50.35%"        "1.9%"         
[148] "8.7%"          "3,404"         "21"            "Graves"        "A"             "50.32%"        "1.0%"         
[155] "3.5%"          "1,733"         "22"            "Kled"          "A"             "50.29%"        "1.2%"         
[162] "1.2%"          "2,066"         "23"            "Sion"          "B"             "50.18%"        "1.9%"         
[169] "0.5%"          "3,398"         "24"            "Yone"          "A"             "50.03%"        "5.8%"         
[176] "19.9%"         "10,366"        "25"            "Yasuo"         "B"             "49.86%"        "3.0%"         
[183] "33.6%"         "5,303"         "26"            "Kayle"         "B"             "49.73%"        "6.1%"         
[190] "3.8%"          "10,899"        "27"            "Cho'Gath"      "B"             "49.38%"        "2.7%"         
[197] "1.8%"          "4,844"         "28"            "Tryndamere"    "B"             "49.34%"        "5.1%"         
[204] "8.1%"          "9,040"         "29"            "Irelia"        "B"             "49.28%"        "4.5%"         
[211] "14.0%"         "8,032"         "30"            "Malphite"      "B"             "49.23%"        "3.3%"         
[218] "2.6%"          "5,832"        

I was able to extract the table but not with rvest. I used the following code :

library(stringr)
library(RSelenium)
url <- "https://u.gg/lol/top-lane-tier-list?rank=iron"
shell('docker run -d -p 4445:4444 selenium/standalone-firefox')
remDr <- remoteDriver(remoteServerAddr = "localhost", port = 4445L, browserName = "firefox")
remDr$open()
remDr$navigate(url)

web_Obj_Table <- remDr$findElement("xpath", '//*[@id="stats-tables-container-ID"]/div[6]/div/div/div/div[1]')
text_Table <-  web_Obj_Table$getElementText()
text_Table <- stringr::str_split(text_Table, "\n")

I obtained the following result :

[1] "Rank"          "Role"          "Champion"      "Tier"          "Win Rate"      "Pick Rate"     "Ban Rate"     
  [8] "Counter Picks" "Matches"       "1"             "Dr. Mundo"     "S+"            "55.49%"        "5.1%"         
 [15] "4.6%"          "9,032"         "2"             "Yorick"        "S+"            "53.88%"        "3.7%"         
 [22] "6.0%"          "6,596"         "3"             "Lillia"        "A"             "53.38%"        "2.0%"         
 [29] "3.9%"          "3,522"         "4"             "Illaoi"        "S+"            "53.18%"        "6.1%"         
 [36] "19.6%"         "10,881"        "5"             "Singed"        "A"             "53.14%"        "1.2%"         
 [43] "0.6%"          "2,215"         "6"             "Mordekaiser"   "S+"            "52.88%"        "12.2%"        
 [50] "18.9%"         "21,753"        "7"             "Sett"          "S+"            "52.06%"        "11.1%"        
 [57] "12.3%"         "19,846"        "8"             "Trundle"       "A"             "51.92%"        "1.5%"         
 [64] "4.4%"          "2,687"         "9"             "Urgot"         "S"             "51.87%"        "4.3%"         
 [71] "4.2%"          "7,608"         "10"            "Garen"         "S+"            "51.84%"        "9.9%"         
 [78] "4.9%"          "17,640"        "11"            "Tahm Kench"    "A"             "51.77%"        "2.5%"         
 [85] "2.3%"          "4,516"         "12"            "Teemo"         "S+"            "51.55%"        "10.6%"        
 [92] "25.7%"         "18,969"        "13"            "Swain"         "A"             "51.47%"        "1.2%"         
 [99] "10.7%"         "2,139"         "14"            "Volibear"      "S"             "51.12%"        "5.9%"         
[106] "9.0%"          "10,450"        "15"            "Nasus"         "S"             "50.99%"        "6.3%"         
[113] "5.4%"          "11,211"        "16"            "Olaf"          "S"             "50.96%"        "5.2%"         
[120] "7.7%"          "9,361"         "17"            "Ornn"          "A"             "50.77%"        "2.5%"         
[127] "0.6%"          "4,536"         "18"            "Shen"          "A"             "50.70%"        "1.9%"         
[134] "0.3%"          "3,414"         "19"            "Jax"           "A"             "50.42%"        "6.9%"         
[141] "6.2%"          "12,285"        "20"            "Wukong"        "A"             "50.35%"        "1.9%"         
[148] "8.7%"          "3,404"         "21"            "Graves"        "A"             "50.32%"        "1.0%"         
[155] "3.5%"          "1,733"         "22"            "Kled"          "A"             "50.29%"        "1.2%"         
[162] "1.2%"          "2,066"         "23"            "Sion"          "B"             "50.18%"        "1.9%"         
[169] "0.5%"          "3,398"         "24"            "Yone"          "A"             "50.03%"        "5.8%"         
[176] "19.9%"         "10,366"        "25"            "Yasuo"         "B"             "49.86%"        "3.0%"         
[183] "33.6%"         "5,303"         "26"            "Kayle"         "B"             "49.73%"        "6.1%"         
[190] "3.8%"          "10,899"        "27"            "Cho'Gath"      "B"             "49.38%"        "2.7%"         
[197] "1.8%"          "4,844"         "28"            "Tryndamere"    "B"             "49.34%"        "5.1%"         
[204] "8.1%"          "9,040"         "29"            "Irelia"        "B"             "49.28%"        "4.5%"         
[211] "14.0%"         "8,032"         "30"            "Malphite"      "B"             "49.23%"        "3.3%"         
[218] "2.6%"          "5,832"        
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文