Rvest и редирект | OTUS
🔥 Скидка 10% ко дню программиста!"
Скидка на все курсы Otus до 22.09! Успейте использовать! →
Выбрать курс

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; — индикация номера страницы при выкачивании многостраничной темы в данном парсере не использовалась.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто
Запланируй обучение с выгодой!
Празднуем день программиста вместе! 10% скидка от Otus на курсы! →