Я не знаком с веб-сайтом. Я тоже не умею читать по-немецки. Насколько я вижу ваш код, вы пытаетесь очистить заголовки, время и URL с помощью sz_webp
. Затем для каждого URL вы пытаетесь очистить тексты. Я думаю, что вы можете улучшить свой код, сосредоточившись на указанных c частях в ссылке. Если вы посмотрите на исходную страницу, вы можете определить местоположение. У вас есть определенные c позиции, которые нужно очистить.
livrary(rvest)
library(tidyverse)
map_dfc(.x = c("em.entrylist__title", "time.entrylist__time"),
.f = function(x) {read_html("https://www.sueddeutsche.de/news?search=Corona&sort=date&all%5B%5D=dep&all%5B%5D=typ&all%5B%5D=sys&all%5B%5D=time") %>%
html_nodes(x) %>%
html_text()}) %>%
bind_cols(url = read_html("https://www.sueddeutsche.de/news?search=Corona&sort=date&all%5B%5D=dep&all%5B%5D=typ&all%5B%5D=sys&all%5B%5D=time") %>%
html_nodes("a.entrylist__link") %>%
html_attr("href")) %>%
setNames(nm = c("title", "time", "url")) -> temp
temp
выглядит следующим образом. Если хочешь, тебе нужно убрать time
. Это все еще грязно.
title time url
<chr> <chr> <chr>
1 "Immer mehr Corona-Infektionen in China" "\n 13:23\n" https://www.sueddeutsche.de/politik/immer-mehr-corona-infektionen-in~
2 "US-Amerikaner an Corona-Virus gestorben" "\n 08:59\n" https://www.sueddeutsche.de/panorama/virus-infektion-us-amerikaner-a~
3 "Frau eines weiteren Webasto-Mitarbeiters ~ "\n 07.02.202~ https://www.sueddeutsche.de/bayern/coronavirus-bayern-newsblog-muenc~
4 "Digitale Revolte" "\n 07.02.202~ https://www.sueddeutsche.de/politik/china-digitale-revolte-1.4788941
5 "Nachrichten kompakt - die Übersicht für E~ "\n 07.02.202~ https://www.sueddeutsche.de/politik/nachrichten-thueringen-kemmerich~
6 "\"Ich würde mir wünschen, dass die Mensch~ "\n 07.02.202~ https://www.sueddeutsche.de/wirtschaft/webasto-coronavirus-bayern-in~
7 "Deutschland will weitere Bürger zurückhol~ "\n 07.02.202~ https://www.sueddeutsche.de/politik/coronavirus-deutschland-will-wei~
8 "Peking wird wegenzur \"Geisterstadt\"" "\n 07.02.202~ https://www.sueddeutsche.de/panorama/angst-vor-corona-peking-wird-we~
9 "Was bedeutet die Corona-Epidemie für Chin~ "\n 07.02.202~ https://www.sueddeutsche.de/politik/coronavirus-wuhan-li-wenliang-1.~
10 "Virus des Widerstands" "\n 07.02.202~ https://www.sueddeutsche.de/politik/china-coronavirus-arzt-1.4788564
Затем, для каждого URL, вы хотите очистить тексты. Я не уверен, как работает эта веб-страница. Но я проверил несколько и обнаружил, что каждая ссылка может иметь несколько статей на поверхности. Это правильно? Содержимое остается в div.sz-article__body
. Вы должны далее выбрать <p>
не имея sz-teaser__summary
в классе. Затем вы можете очистить содержимое, которое вы, вероятно, ищете. Здесь я перебрал три ссылки. Первый не предлагает никаких текстов. Может быть, это тот, о котором вы говорите; недоступное содержимое. Я надеюсь, что этого достаточно для дальнейшего прогресса.
map_df(.x = temp$url[1:3],
.f = function(x){tibble(url = x,
text = read_html(x) %>%
html_nodes("div.sz-article__body") %>%
html_nodes("p:not(.sz-teaser__summary)") %>%
html_text() %>%
list
)}) %>%
unnest(text) -> foo
foo
url text
<chr> <chr>
1 https://www.sueddeutsche.de/panorama/virus-infektion-us-a~ "In Wuhan ist ein Amerikaner an einer Corona-Infektion gestorben. Wie d~
2 https://www.sueddeutsche.de/panorama/virus-infektion-us-a~ "Auch ein Japaner starb nach Einschätzung des Tokioter Außenministerium~
3 https://www.sueddeutsche.de/panorama/virus-infektion-us-a~ "Bisher sind außerhalb Festland-Chinas zwei Todesfälle infolge einer Co~
4 https://www.sueddeutsche.de/panorama/virus-infektion-us-a~ "Damit könnte sie in Kürze die weltweit offiziell registrierten 774 Tod~
5 https://www.sueddeutsche.de/panorama/virus-infektion-us-a~ "Coronavirus"
6 https://www.sueddeutsche.de/bayern/coronavirus-bayern-new~ "Freitag, 7. Februar, 19.37 Uhr In Bayern gibt es einen weiteren Corona~
7 https://www.sueddeutsche.de/bayern/coronavirus-bayern-new~ "Freitag, 7. Februar, 18.19 Uhr: Der Coronavirus-Ausbruch hat den bayer~
8 https://www.sueddeutsche.de/bayern/coronavirus-bayern-new~ "Freitag, 7. Februar, 15.05 Uhr: Der Verdacht, der bayerische Coronavir~
9 https://www.sueddeutsche.de/bayern/coronavirus-bayern-new~ "Die bayerischen Fälle gehen alle auf betriebsinterne Schulungen in der~
10 https://www.sueddeutsche.de/bayern/coronavirus-bayern-new~ "Donnerstag, 6. Februar, 13.35 Uhr: In Bayern hat sich eine weitere Fra~