Я всегда старался использовать пакет xml в R, и мне нужна помощь, скремблирующая некоторые хорошо отформатированные таблицы с xml2.Скремблирование первых двух столбцов веб-таблиц с xml2
URL-адрес первой страницы таблиц, которые я хотел бы очистить, - here. На некоторых страницах я хочу вторую и третью таблицы, но на других я хочу первый и второй. Общий поток - это то, что я хочу, чтобы все таблицы, где тег «caption» содержит текст, «который встречается», соскабливаемый и сохраненный в одном списке, и таблицы, в которых тег «caption» содержит текст «, который не соответствует ни одному». Но я действительно не знаю, как это понять. Код, с которым я работаю, выглядит следующим образом. Я могу представить, что должен быть какой-то способ сделать регулярное выражение условием для выбора всей таблицы. Надеюсь, что код работает.
#Define urls
urls<-lapply(seq(1,12, 1), function(x) paste('http://www.chemicalsubstanceschimiques.gc.ca/challenge-defi/batch-lot-',x,'/index-eng.php', sep=''))
#scrap the text
batches<-lapply(urls, function(x) read_html(x))
#Return the tables from each
batches_tables<-lapply(batches, function(x) xml_find_all(x, './/table'))
#get the table from the first
out<-batches[[1]]
#Inspect
out[[1]] #do not want this table
out[[2]] #want this table pasted in one list, caption='that meet'
out[[2]] #want this table pasted in a second list, caption='that do not meet'
'rvest' имеет очень приятный SelectorGadget, который может помочь вам найти соответствующие CSS или XPath селекторы. См. 'Vignette (" selectorgadget ", package = 'rvest')'. 'rvest :: html_table' также будет полезен здесь. – alistaire