Скрипт веб-скрапа для извлечения страниц (навигация по JavaScript).Получение неправильных данных для страницы 6 и за ее пределами - PullRequest
0 голосов
/ 04 июля 2019

Я пытаюсь найти результаты по ссылке на сайте (https://www.securities -administrators.ca / nrs / nrsIndvSearchResults.aspx? Mode = AS & type = I & indv = & firm = & juri = ON & ctgy = 1 & history = 0 )

Мне нужны имя и фамилия сотрудника для всех записей.Например, в приведенной выше ссылке 68176 записей.На странице 25 записей.

Цель состоит в том, чтобы собрать все страницы и получить детали в фрейме данных в R.

Я написал код, используя пакет rvest в R. Мой скрипт извлекает данные, НО это неработая на страницу 6 и далее.Я получаю правильные данные для страниц с 1 по 5.

Вот мой код:

base_url<-'https://www.securities-administrators.ca/nrs/nrsIndvSearchResults.aspx?mode=AS&type=I&indv=&firm=&juri=ON&ctgy=1&history=0'

pgsession <- html_session(base_url)

pgform <- html_form(pgsession)[[1]]

people <- data.frame()

#Javascript target identified from inspect element feature of browser
target <- 'ctl00$bodyContent$lbtnPager6'

page <- rvest:::request_POST(pgsession, base_url,
                             body=list(
                               `__VIEWSTATE` = pgform$fields$`__VIEWSTATE`$value,
                               `__EVENTTARGET` = target,
                               `__EVENTARGUMENT` = "",                                                         
                               `__VIEWSTATEGENERATOR` = pgform$fields$`__VIEWSTATEGENERATOR`$value,
                               `__VIEWSTATEENCRYPTED` = pgform$fields$`__VIEWSTATEENCRYPTED`$value,
                               `__EVENTVALIDATION` = pgform$fields$`__EVENTVALIDATION`$value
                             ),
                             encode = "form")

x <- read_html(page) %>% 
    html_nodes(css = "#ctl00_bodyContent_gvIndividuals") %>% 
    html_table(fill = TRUE) %>% 
    as.data.frame()

x возвращает данные, которые отображаются на странице 1 в неправильной ссылке на веб-сайте.Я не могу понять, почему это не работает для страницы 6 и далее, НО работает для страницы 2-5.Заранее спасибо за помощь

...