Хранение ссылок, извлеченных из нескольких страниц, в одной переменной в R - PullRequest
0 голосов
/ 08 июня 2018

Я хотел бы извлечь ссылки из URL-адреса, содержащего несколько страниц, и сохранить все извлеченные ссылки в одной переменной.Теперь у меня есть рабочий код для большей части этого, однако моя созданная переменная хранит только информацию, полученную с последней страницы.Как я могу настроить код для хранения ссылок, полученных со всех страниц?

Вот мой код:

page_links <- paste0('https://cryptoslate.com/ico-database/recent-icos/page/', 1:7)
# Retrieving links to all pages I want to retrieve links from 

ICO_links_CS <- c()
# Creating an empty variable for links to be stored in 

# loop through each page, extract all links and select the ones I want to 
retrieve, then doing some cleaning up  
for (i in length(page_links)) {
  ICO_links_CS <- c(ICO_links_CS, deduped.data_Cryptoslate)
  page_links_1 <- read_html(page_links[i])
  Extractlinks <- html_attr(html_nodes(page_links_1, "a"), "href")
  ICO_links_Cryptoslate <- str_subset(Extractlinks, 
"https://cryptoslate.com/coins/")
  deduped.data_Cryptoslate <- unique(ICO_links_Cryptoslate)
}

1 Ответ

0 голосов
/ 14 июня 2018

Основная проблема в том, что вы действительно хотите for (i in 1:length(page_links)), а не for (i in length(page_links)).Кроме того, вместо добавления результатов с каждой страницы в ICO_links_CS может потребоваться инициализировать ICO_links_CS в виде списка и сохранять результаты с каждой страницы в качестве элемента в списке.Например,

library(rvest)
library(stringr)

# Retrieving links to all pages I want to retrieve links from 
page_links <- paste0('https://cryptoslate.com/ico-database/recent-icos/page/', 1:7)

# Creating an empty variable for links to be stored in 
ICO_links_CS <- vector(length = length(page_links), mode = "list")

# loop through each page, extract all links and select the ones I want to retrieve, then doing some cleaning up  
for (i in 1:length(page_links)) {
  page_links_1 <- read_html(page_links[i])
  Extractlinks <- html_attr(html_nodes(page_links_1, "a"), "href")
  ICO_links_Cryptoslate <- str_subset(Extractlinks, "https://cryptoslate.com/coins/")
  ICO_links_CS[[i]] <- unique(ICO_links_Cryptoslate)
}

Наконец,

ICO_links_CS <- unlist(ICO_links_CS)
str(ICO_links_CS)
# chr [1:661] "https://cryptoslate.com/coins/"
...