我的目标是用以下网站的时间删除新闻标题:

library(rvest)
library(dplyr)
library(polite)

col_link = "https://www.finanznachrichten.de/nachrichten/nachrichten-alle.htm"
bow(col_link)
col_page = read_html(col_link)

scraped_tables <- col_page %>% 
  html_nodes("table") %>%
  html_table(fill = TRUE)

scraped_tables[[2]]

结果只有第一页. 它没有抓住的是接下来的4页和几个小时.我上传了一张带圆圈的照片.URL不是交互式的,所以我不能只使用循环来捕获所有补丁.

有人能给我一些建议吗?谢谢.

enter image description here

推荐答案

如果你看一下网页本身,它的表格下面有一系列建议页面的链接(你已经知道了):

enter image description here

对我来说,鼠标悬停不会显示目标URL,但是如果你打开浏览器devtools(不是R的devtools包),通常是F12之类的,转到"网络"选项卡,然后点击其中一个页面,你会看到获取的URL:

enter image description here

您可以使用该模板来迭代表,直到不再获得任何数据.

read_html("https://www.finanznachrichten.de/w/289/1?tab=0&page=26") |>
  html_table()
# [[1]]
# # A tibble: 20 × 5
#    Zeit  `Aktuelle NachrichtenSprache:             \nAlle DE EN`                                                   Medien               ``    ``              
#    <chr> <chr>                                                                                                     <chr>                <lgl> <chr>           
#  1 14:15 "Danish non-alc producer ISH talks up \"tremendous\" potential in off-premise"                            Just Drinks          NA    ""              
#  2 14:15 "Nicht erschrecken, wenn diese Google-Seite plötzlich einen neuen Look hat"                               SmartDroid           NA    ""              
#  3 14:15 "Neue Gemini-App für Android startet, aber nicht in Deutschland"                                          SmartDroid           NA    ""              
#  4 14:15 "Small launch companies seek niches to compete with SpaceX rideshare"                                     SpaceNews            NA    ""              
#  5 14:15 "Netflix enthüllt alle Highlights für 2024"                                                               TECHBOOK             NA    ""              
#  6 14:15 "Höhere Prämien treiben Hannover Rück an"                                                                 Versicherungsmagazin NA    ""              
#  7 14:15 "China's NEV exports up 27.1 pct in January 2024: association"                                            Xinhuanet            NA    ""              
#  8 14:15 "Bayer: Neue Probleme am Horizont"                                                                        4investors           NA    "In den USA bek…
#  9 14:15 "Gratis war gestern: Nur noch 4 Prozent der Onlinehändler bieten kostenlosen Versand"                     t3n                  NA    "Immer weniger …
# 10 14:15 "Tata Communications arbeitet mit Microsoft zusammen, um Sprachanrufe über Microsoft Teams zu verbessern" news aktuell         NA    "Mumbai, Indien…
# 11 14:15 "IAA Transportation 2024 mit Bus-Themenpark"                                                              Automobil Industrie  NA    ""              
# 12 14:15 "Mofas, Mopeds, E-Scooter: Schilderwechsel steht bevor"                                                   cash-online.de       NA    ""              
# 13 14:15 "Wachtendorf-Kolumne: Zertifikate-Schwemme: Tatort Sparkasse"                                             DAS INVESTMENT       NA    ""              
# 14 14:15 "Volvo Global All-Electric Car Sales Improved In January Thanks To EX30"                                  InsideEVs            NA    ""              
# 15 14:15 "Playtech nets 2028 extension to Boylesports partnership"                                                 SBC News             NA    ""              
# 16 14:15 "Mysteries of the Orient: Unveil the Secrets with Endorphina's Oriental Dragon"                           European Gaming      NA    ""              
# 17 14:15 "Politiker gehen viral: Wieso kann wirklich jeder ein TikTok-Star werden?"                                futurezone           NA    ""              
# 18 14:15 "Aufgewärmter Reis ist \"tödlich\": Das steckt hinter der TikTok-Panik"                                   futurezone           NA    ""              
# 19 14:15 "Spritzer inks JV agreement to develop housing project in Perak"                                          The Edge Markets     NA    ""              
# 20 14:15 "Court strikes out LCS subcontractors' lawsuit against BHIC, directors"                                   The Edge Markets     NA    ""              

不幸的是……page=27返回相同的表格,所以我花了一些时间才知道page=26是最后一页……我没有信心它会一直是=26.特别是因为你想活到polite岁,而我不能提前知道有多少页,你会想要非常小心地寻找已经被退回的any rows页.下面是一个稍微可以接受的过程来获得所有这些信息:

tables <- list()
page <- 1
while (TRUE) {
  this <- read_html(paste0("https://www.finanznachrichten.de/w/289/1?tab=0&page=", page)) |>
    html_table()
  if (any(sapply(tables, function(tb) anyDuplicated(rbind(tb, this[[1]])) > 0))) break
  tables <- c(tables, this)
  page <- page + 10 # use +1 in reality, I'm just being `polite` :-)
}
page
tables <- do.call(rbind, tables)
tables
# # A tibble: 80 × 5
#    Zeit  `Aktuelle NachrichtenSprache:             \nAlle DE EN`                                                                       Medien      ``    ``   
#    <chr> <chr>                                                                                                                         <chr>       <lgl> <chr>
#  1 14:51 "Opening Bell: PayPal, Adyen, Roblox, PepsiCo, GoPro, Mattel"                                                                 Der Aktion… NA    "Wie…
#  2 14:51 "PayPal: Die Kursziele purzeln"                                                                                               finanztref… NA    "Pay…
#  3 14:51 "Siemens: Allzeithoch!"                                                                                                       finanztref… NA    "Die…
#  4 14:51 "Von Studis bis zu Beauty & Health: APG mit 18 neuen Zielgruppen im Digitalen"                                                Klein Repo… NA    ""   
#  5 14:51 "Krebsforschung: Deutschland kann beim Forschungsboom nicht mithalten"                                                        RND.de      NA    ""   
#  6 14:51 "Betreiber zuversichtlich: Gasspeicher erneut zu 100 Prozent befüllbar"                                                       RND.de      NA    ""   
#  7 14:50 "ERSTE AG: Suspension of trading in and the removal of EBBMWTS14 turbo warrant and the possibility of Residual Value Trading" Budapest S… NA    ""   
#  8 14:50 "Universal Investment: \"Stehen nicht im Wettbewerb mit Kunden\""                                                             fondscheck… NA    "Wie…
#  9 14:50 "Rosenberger, Langer & Cie. ernennt Andreas Langer zum Geschäftsführer"                                                       fondscheck… NA    "Bad…
# 10 14:50 "Stabilitas Gold+Resourcen Special Situations-Fonds: 01/2024-Bericht, Wertrückgang von 11,3%"                                 fondscheck… NA    "Bad…
# # ℹ 70 more rows
# # ℹ Use `print(n = ...)` to see more rows

备注:

  1. 我在这里加page + 10是为了演示,你可能想要page + 1.
  2. 出于许多原因,我 Select 不对while循环中的每一遍都进行tables <- rbind(tables, this[[1]])操作(特别是,请参见The R Inferno,"Growing Objects");在这种情况下,它可能"很好",但它可能很快就会失控,所以这种将tables内的每个表rbindthis[[1]]相加的方法限制了内存的增长.

R相关问答推荐

r中的stat_difference函数不起作用

R中具有gggplot 2的Likert图,具有不同的排名水平和显示百分比

如何删除gggvenn与gggplot绘制的空白?

将向量组合到一个数据集中,并相应地命名行

在R中使用数据集名称

打印XTS对象

KM估计的差异:SvyKm与带权重的调查

如何在使用箭头R包(箭头::OPEN_DATASSET)和dplyr谓词时编写具有整齐计算的函数?

我是否可以使用多个变异项来构建顺序列(标记多个问题)

判断函数未加载R中的库

ggplot斜体轴刻度标签中的单个字符-以前的帖子建议不工作

R-如何在ggplot2中显示具有不同x轴值(日期)的多行?

如何在访问之前下载的输入时同时上传和处理所有指定的shiny 输入?

将仪表板中的值框大小更改为Quarto

如何捕获这个shiny 的、可扩展的react 性用户输入矩阵作为另一个react 性对象,以便进一步操作?

修复标签重叠和ggploy内的空间

打印的.txt文件,将值显示为&Quot;Num&Quot;而不是值

用逗号拆分字符串,并删除一些字符

当y为负值时,无法使stat_cor正确定位到底部?

Gggvenn为Venn增加了不存在的价值