我正在嘗試以編程方式下載此頁面上的兩個 zip 檔案:
https://sites.google.com/site/ucinetsoftware/datasets/covert-networks/siren
這兩個 zip 檔案實際上位于不同的頁面上,但href這些頁面位于此頁面內。所以,我想做的是:
- 獲取兩個 zip 檔案所在頁面的鏈接(它們位于公共 google 驅動器上)
- 將兩個 zip 檔案下載到我的計算機
(是的,我知道我可以手動下載它們,但是我需要從更多頁面下載,所以我想自動化這個程序)
不幸的是,我什至無法邁出第一步。我首先將頁面加載到rvest其中,然后嘗試獲取元素div.flip-entry-info,但這不會產生任何結果。我相信這是因為它是iframe此頁面內部的一部分。那么,如何訪問包含href指向這些檔案實際位置的元素呢?
第二步,我需要找到一種從谷歌驅動器下載資料的方法。
例如,這兩個 zip 檔案之一位于:https ://drive.google.com/file/d/1BFN_1n-5EZ3rLrqrqWsAsBR9exjXuUKF/view 。
但我完全不知道從那里下載檔案。Chrome 中的“檢查”選項在此頁面上selectorgadget不起作用,也沒有顯示任何有用的資訊。
誰能幫我通過 R 下載這些檔案?我完全被困住了。
uj5u.com熱心網友回復:
我們可以得到里面的鏈接iframe
你可以參考這里的教程,
https://github.com/yusuzech/r-web-scraping-cheat-sheet/blob/master/README.md#rvest7.2
library(rvest)
library(magrittr)
link = 'https://sites.google.com/site/ucinetsoftware/datasets/covert-networks/siren' %>%
read_html() %>%
html_nodes("iframe") %>% html_attr("src")
#get links of both the files
link %>% read_html() %>% html_nodes(".flip-entry-info") %>% html_nodes('a') %>%
html_attr('href')
[1] "https://drive.google.com/file/d/1cio3RzjDO6e78PKdEFSPgdw4tCJ7_VUi/view?usp=drive_web"
[2] "https://drive.google.com/file/d/1BFN_1n-5EZ3rLrqrqWsAsBR9exjXuUKF/view?usp=drive_web"
要下載檔案,我們可以使用googledrivelibrary.
library(googledrive)
temp <- tempfile(fileext = ".zip")
drive_download(
as_id("https://drive.google.com/file/d/1cio3RzjDO6e78PKdEFSPgdw4tCJ7_VUi/view?usp=drive_web"), path = temp, overwrite = TRUE)
out<- unzip(temp, exdir = tempdir())
df<- read.csv(out, sep = ",")
str(df)
'data.frame': 44 obs. of 45 variables:
$ ?..: int 1 2 3 4 5 6 7 8 9 10 ...
$ X1 : int 0 1 1 1 1 1 1 1 1 1 ...
$ X2 : int 1 0 0 0 0 0 0 0 0 0 ...
$ X3 : int 1 0 0 0 0 1 0 0 0 0 ...
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/439594.html
下一篇:如何從BS4輸出中制作串列
