我在 Git Hub 頁面上有一個資料集。我將它們作為 CSV 檔案匯入到 Rstudio 并創建了一個名為“StoryLink”的 URL 陣列現在我想從這些網頁中的每一個網頁抓取資料。所以我創建了一個 for 回圈并將所有收集到的資料分配給一個名為“articleText”的變數并將其轉換為一個名為“ArticlePage”的字符陣列
我的問題是,即使我創建了一個 for 回圈,它也只能抓取URL 串列中的最后一個網頁(第 6 篇文章)。我如何通過網路抓取所有 URL?
library(rvest)
library(dplyr)
GitHubpoliticsconversions<- "https://raw.githubusercontent.com/lukanius007/web_scraping_politics/main/politics_conversions.csv"
CSVFile <- read.csv(GitHubpoliticsconversions, header = TRUE, sep = ",")
StoryLink <- c(pull(CSVFile, 4))
page <- {}
for(i in 1:6){
page[i] <- c(StoryLink[i])
ArticlePage <- read_html(page[i])
articleText = ArticlePage %>% html_elements(".lead , .article__title") %>% html_text()
PoliticalArticles <- c(articleText)
}
這是我從這段代碼中得到的結果,但我需要從所有網頁中得到相同的結果
>PoliticalArticles
[1] "Wie es zur Hausdurchsuchung bei Finanzminister Blümel kam"
[2] "Die Novomatic hatte den heutigen Finanzminister 2017 um Hilfe bei Problemen im Ausland gebeten – und eine Spende für die ?VP angeboten. Eine solche habe er nicht angenommen, sagt Blümel."
>
uj5u.com熱心網友回復:
您需要以可以逐漸增長的資料格式(例如串列)存盤檢索到的網站資料。
您可以通過將i用作串列命名來將元素分配給 for 回圈中的(先前創建的)串列。在下面的示例中,我們只是將每個 2*i 計算的結果存盤在 data_list 中。然后可以通過簡單地訪問串列元素來檢索結果,例如data_list[1]
data_list <- list()
for (i in 1:10) {
data_list[i] <- 2*i
}
data_list
data_list[1]
在您的示例中,您可以完全相同。Nb 我稍微改變了你的代碼并簡化了它。我遍歷您的網站串列,i基本上每個 weburl 也是如此。然后將結果按上面概述的方式存盤在一個串列中,該串列的大小逐漸增加,可以通過pages[1], 或相應的 url訪問pages["https://www.diepresse.com/5958204"]
library(rvest)
library(dplyr)
GitHubpoliticsconversions<- "https://raw.githubusercontent.com/lukanius007/web_scraping_politics/main/politics_conversions.csv"
CSVFile <- read.csv(GitHubpoliticsconversions, header = TRUE, sep = ",")
StoryLink <- c(pull(CSVFile, 4))
pages <- list()
for(i in StoryLink){
ArticlePage <- read_html(i)
articleText = ArticlePage %>% html_elements(".lead , .article__title") %>% html_text()
pages[[i]] <- c(articleText)
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/317048.html
上一篇:如何獲取網站上的所有內容
