Если я понял ваш вопрос, вы хотели бы получить данные из основной таблицы по URL-адресу https://salesweb.civilview.com/Sales/SalesSearch?countyId=3
, а также подробные данные для каждой записи в основном URL-адресе.
В качестве примера я написал код, который позволяет извлекать данные с главной страницы в структурированном фрейме данных, в котором первый столбец является URL-адресом записи сведений.
#load libraries
library(rvest)
library (tidyverse)
#assign url
url <- "https://salesweb.civilview.com/Sales/SalesSearch?countyId=3"
#extract td tags contents
readUrlHtml <- read_html(url) %>% html_nodes("td")
#create empty dataframe
df <- data.frame(Details=character(),
Sheriff=character(),
SalesDate=character(),
Plaintiff=character(),
Defendant=character(),
Address=character(),
stringsAsFactors=FALSE)
#loop to harvest the data
j = 1
for (i in 1:(length(readUrlHtml)/6))
{
df[i,c('Details')] <- paste0("https://salesweb.civilview.com/Sales/SaleDetails?PropertyId=",substr(readUrlHtml[j],65,73))
df[i,c('Sheriff')] <- readUrlHtml[j+1] %>% html_text()
df[i,c('SalesDate')] <- readUrlHtml[j+2] %>% html_text()
df[i,c('Plaintiff')] <- readUrlHtml[j+3] %>% html_text()
df[i,c('Defendant')] <- readUrlHtml[j+4] %>% html_text()
df[i,c('Address')] <- readUrlHtml[j+5] %>% html_text()
j = j + 6
}
#values check
df[1,]
df[50,]
df[525,]
С пакетом rvest
вы сможете извлекать и сохранять в новом фрейме данных данные страницы сведений.
РЕДАКТИРОВАТЬ 2019-03-29
Чтобы получить подробные данные, вам необходимо сохранить информацию о файлах cookie с основного URL. После этого вы можете создать новый фрейм данных для хранения этих данных: это показано в обновленной версии кода.
1) новая библиотека httr
используется для получения данных куки
2) извлекаемые данные - это те, которые находятся внутри красного прямоугольника на экране печати (чтобы получить последнее, я предлагаю создать новый фрейм данных для хранения дополнительных данных, но я предполагаю, что это значительно увеличит количество типов необходимо обработать все данные!)
3) два кадра данных df
& dfDetails
можно объединить с помощью клавиши Details
#load libraries
library(rvest)
library (tidyverse)
library (httr) #new library
#assign url
url <- "https://salesweb.civilview.com/Sales/SalesSearch?countyId=3"
#extract td tags contents
readUrlHtml <- read_html(url) %>% html_nodes("td")
#create empty dataframe
df <- data.frame(Details=character(),
Sheriff=character(),
SalesDate=character(),
Plaintiff=character(),
Defendant=character(),
Address=character(),
stringsAsFactors=FALSE)
#loop to harvest the data
j = 1
for (i in 1:(length(readUrlHtml)/6))
{
df[i,c('Details')] <- paste0("https://salesweb.civilview.com/Sales/SaleDetails?PropertyId=",substr(readUrlHtml[j],65,73))
df[i,c('Sheriff')] <- readUrlHtml[j+1] %>% html_text()
df[i,c('SalesDate')] <- readUrlHtml[j+2] %>% html_text()
df[i,c('Plaintiff')] <- readUrlHtml[j+3] %>% html_text()
df[i,c('Defendant')] <- readUrlHtml[j+4] %>% html_text()
df[i,c('Address')] <- readUrlHtml[j+5] %>% html_text()
j = j + 6
}
#values check
df[1,]
df[50,]
df[525,]
## UPDATED SECTION TO RETRIEVE THE URLS DETAILS ##
#retrieve session cookie by taking the url of the main page
urlInfos <- GET(url)
#create empty details dataframe
dfDetails <- data.frame(Details=character(),
Sheriff=character(),
CourtCase=character(),
SalesDate=character(),
Plaintiff=character(),
Defendant=character(),
Address=character(),
Description=character(),
ApproxUpset=character(),
Attorney=character(),
AttorneyPhone=character(),
stringsAsFactors=FALSE)
#loop to harvest the details
for (i in 1:length(df$Details)) #takes a while to retrieve all records! (5-6 mins)
#for (i in 1:3) #loop through few record for testing purposes
{
responseDetail <- GET(df[i,c('Details')], set_cookies(`urlInfos$cookies[6]` = paste0('"',urlInfos$cookies[7],'"')))
readUrlHtmlDetail <- read_html(responseDetail) %>% html_nodes("td")
dfDetails[i,c('Details')] <- df[i,c('Details')]
dfDetails[i,c('Sheriff')] <- readUrlHtmlDetail[2] %>% html_text()
dfDetails[i,c('CourtCase')] <- readUrlHtmlDetail[4] %>% html_text()
dfDetails[i,c('SalesDate')] <- readUrlHtmlDetail[6] %>% html_text()
dfDetails[i,c('Plaintiff')] <- readUrlHtmlDetail[8] %>% html_text()
dfDetails[i,c('Defendant')] <- readUrlHtmlDetail[10] %>% html_text()
dfDetails[i,c('Address')] <- readUrlHtmlDetail[12] %>% html_text()
dfDetails[i,c('ApproxUpset')] <- readUrlHtmlDetail[14] %>% html_text()
dfDetails[i,c('Attorney')] <- readUrlHtmlDetail[16] %>% html_text()
dfDetails[i,c('AttorneyPhone')] <- readUrlHtmlDetail[18] %>% html_text()
}
#values detail check
dfDetails[1,]
dfDetails[50,]
dfDetails[525,]