Мне нужно извлечь некоторые определенные c URL-адреса из списка URL-адресов, которые указаны в конце вопроса, который я извлек с помощью rvest
Однако мне нужно извлечь только те URL-адреса, которые начинаются с одного из следующих
и содержат один из следующие слова (без учета регистра)
, но не тогда, когда URL-адрес начинается с /files/
, который тогда должен содержать только data-for-researchers/
Я использую R; поэтому я использовал rvest
для извлечения данных:
CODE
url %>%
html_nodes("a") %>% html_attr("href") %>%
str_subset(regex("^//*(assets|data|files).*((Primary|Elem|Midd|High)|(data-for-researchers))", ignore_case = T))
Это работает по большей части, то есть извлекает почти все URL-адреса, которые мне нужны , но это дает мне несколько дополнительных адресов, которые начинаются с \files\
.
Пример - где работает регулярное выражение
[1] "https://www.ed.sc.gov/assets/reportCards/2008/documents/Primary_School_Performance_File_2008.xls"
[2] "https://www.ed.sc.gov/assets/reportCards/2008/documents/Primary_School_Fact_File_2008.xls"
[3] "https://www.ed.sc.gov/assets/reportCards/2008/documents/2008-ELEM-Schools-Performance-Data.xls"
[4] "https://www.ed.sc.gov/assets/reportCards/2008/documents/Elementary_School_Fact_File_2008.xls"
[5] "https://www.ed.sc.gov/assets/reportCards/2008/documents/2008-MIDDLE-Schools-Performance-Data.xls"
[6] "https://www.ed.sc.gov/assets/reportCards/2008/documents/Middle_School_Fact_File_2008.xls"
Где код не работает
/files/2018/data-files/high-school-ela-math-results/
/files/2018/data-files/elementary-middle-ela-math-results/
/files/2018/data-files/2018-report-card-data-for-researchers/
/files/2018/data-files/2018-report-card-data-for-researchers-additional-information/
но я нужен только 3-й из этого списка, сохраняя все остальные, которые я сопоставил с другими, используя приведенный выше код.
Я пробовал так много вариантов шаблона регулярного выражения, но в основном он удалил только нижние 2 сверху.
Как это исправить?
DATA
Я добавляю ссылку на файл, куда помещаю dput
всех данных так как список слишком длинный для публикации. Его можно скачать здесь