我在使用 rvest 进行网页抓取时遇到了一个奇怪的问题。
我刮了以下名称:"Abdichter/in EFZ"起初看起来很正常。但是,当我将文件写入 csv 时,我发现字母之间有“-”。在 Excel 中,这个词看起来像这样:Ab-dich-ter/in EFZ。
所以我做了一个str_split(x, ""),发现字符串实际上是这样的:
c("A", "b", "", "d", "i", "c", "h", "", "t", "e", "r", "/", "i", "n", " ", "E", "F", "Z")
Run Code Online (Sandbox Code Playgroud)
我试图从字符串中取出空字符串,但我没有做到。我试过:
my_string <- str_split(my_string , "")
Run Code Online (Sandbox Code Playgroud)
进而
paste0(my_string[my_string != ""])
Run Code Online (Sandbox Code Playgroud)
但这没有帮助。
因此,我想知道:
编辑:这是网页。
这是我获得字符串的方式:
library(rvest)
read_html("https://berufskunde.com/ausbildungsberufe/ausbildung-abdichter.html", encoding = "UTF-8") %>%
html_nodes(".section") %>%
html_nodes(".text-rot") %>%
html_text()
Run Code Online (Sandbox Code Playgroud)
您观察到的字符串不是空字符串,而是一个软连字符(U+00AD) 字符。它应该只在单词跨行时显示,但一些编辑器不能正确处理它,这就是为什么在您检查 CSV 时它可能会显示的原因。
无论如何,您可能希望将其从字符串中删除:
str = gsub('\U00AD', '', str)
Run Code Online (Sandbox Code Playgroud)