Ich habe es geschafft, diese Wikipedia Seite Oscars Nominations zu kratzen und die Tabelle unter "Nominees" zu extrahieren. Ich kann anhand der folgenden Tabelle durch die der Code erhalten:Web Scraping Wikipedia - String Manipulation
wiki <- "https://en.wikipedia.org/wiki/89th_Academy_Awards"
text <- wiki %>%
read_html() %>%
html_nodes('//*[@id="mw-content-text"]/table[3]') %>%
html_table()
Welche gibt eine ‚Liste‘, wie der Name ‚text‘
test <- data.frame(one=unlist(text), stringsAsFactors=F)
row.names(test) <- NULL
test <- test[-16,]
nw_lst <- strsplit(test, "\n")
Ich versuche, die Ergebnisse in einem df zu setzen und entfernen Sie dann ein unbrauchbare Zeile und dann 'strsplit' auf der Zeile break Regex '\ n' in der 'nw_lst', die eine andere Liste aber viel sauberer mit 23 Elementen ausgibt, die jeder Oscar-Nominierung mit den unten aufgeführten Titeln entspricht. Ich möchte dann die Liste in 2 df, eine für die beste Bildnominierung und die zweite df mit den anderen Nominierungen analysieren.
Also hier ist mein Problem, sobald ich die Nominierungen getrennt habe, möchte ich den Text aufräumen. Das Problem ist, dass aus irgendeinem Grund nichts in dem "striperr" -Paket den gesamten unnötigen Text außer dem Filmtitel entfernen kann.
str_replace_all(oscr.bp$Best.Picture,pattern = "\n", replacement = " ")
str_replace_all(oscr.bp$Best.Picture,pattern = "[\\^]", replacement = " ")
str_replace_all(oscr.bp$Best.Picture,pattern = "\"", replacement = " ")
str_replace_all(oscr.bp$Best.Picture,pattern = "\\s+", replacement = " ")
str_trim(oscr.bp$Best.Picture,side = "both")
Aber wenn ich die Struktur von df in meiner Umgebung zu untersuchen und klicken Sie auf den blauen Pfeil Vektor-Klassen, um zu sehen und Sie die Maus über die chr Vektor schweben, aber es hat seltsame Formen innerhalb des Zeichenvektor und hat diese |__truncated__
innerhalb in Die Zeichenfolge ist jedoch nicht sichtbar, wenn die Zeichenfolge in der Konsole überprüft wird.
Ich möchte nur den besten Weg wissen, um über diese Zeichenfolgen zu reinigen, oder eine andere Möglichkeit, nur die Titelnamen für jede Nominierung innerhalb der HTML-Knoten unter <ul>
und <li>
parse zu bekommen? Ich weiß nicht viel über grundlegende HTML-Code-Bedeutungen, außer durch den Quellcode zu schauen und zu finden, was ich mit dem Selector-Gadget brauche.
„es seltsame Formen innerhalb des Zeichenvektor“ - das ist Problem wahrscheinlich eine Codierung (siehe 'Encoding '). Haben Sie die HTML-Parsing-Funktionen im Paket 'XML' ausprobiert? – Jean