Rvest и редирект
В сети хорошо описан парсинг данных с отдельной веб-страницы, а редирект между страницами почему то обойдён вниманием. Устраним этот недостаток.
Так как данные скачивались со стороннего ресурса, вариант многопоточной загрузки был отвергнут с целью уберечь админов выпарсиваемого форума от стрессов и нервных потрясений, поэтому был выбран постраничный обход с использованием цикла while.
Кусок кода, ответственного за переход к следующей странице на очередной итерации:
while (length(URLnext) > 0) { page <- read_html(URLnext) url_node <- html_nodes(page, '.right') ### перейти к След. странице URLnext <- gsub("\\&sid\\=.+\\&start", "\\&start", gsub("\\.\\/", "http://socioforum.su/", html_attr(url_node, "href"))) ``` Синтаксис и нахождение **xpath** или **css selector** (в данном примере для функции `html_nodes`) подробно описаны в примерах в сети, полагаю, нет смысла повторяться. Индикация перехода к следующей теме форума: ```r print("################### NEXT TOPIC ######################") print(i) cat("################### NEXT TOPIC ######################", file = "log.txt", fill = T, append = T) cat(i, file = "log.txt", fill = T, append = T) }
При завершении итерации на экран и в лог выводится строка:
################### NEXT TOPIC ######################
и номер URL_а темы.
При этом: — URL_ы сохранялись в файл URL.txt; — i — номер итерации и номер строки файла URL.txt; — индикация номера страницы при выкачивании многостраничной темы в данном парсере не использовалась.