我正在嘗試使用包 rvest 和工具選擇器小工具來抓取 yougov 提供的最著名品牌的名單。該工具作業正常,但不幸的是,R 只抓取了前 20 個品牌名稱,即使選擇器小工具工具正確選擇了所有品牌。
我正在使用的 R 代碼如下:
# Packages
library("rvest")
library("dplyr")
# Scraping yougov-Data
yougov <- read_html("https://today.yougov.com/ratings/consumer/fame/brands/all")
yougov %>%
html_nodes("span:nth-child(3)") %>%
html_text()
我猜這個問題與默認情況下 yougov 只顯示前 20 個品牌有關。但是,當您展開其余品牌時,選擇器小工具代碼不會更改。
非常感謝您的幫助!
uj5u.com熱心網友回復:
檢查Developer Tools瀏覽器中的Network選項卡,然后再次瀏覽網站。您會注意到在第一個 HTML 回應中加載了前 20 個品牌。然后,當您按下“加載更多”按鈕時,將發送一個新請求,該請求將加載 20 個以上的品牌。從現在開始,當您滾動頁面時,會發送新請求,加載越來越多的品牌。
您無法使用 復制此行為rvest,除非網站提供 API,并且您將網站的 URL 替換為 API 端點以獲取所有這些資料。
如果您想繼續使用網路抓取選項,您應該考慮 RSelenium(或任何其他自動化瀏覽器的 R 庫)并執行 de 演算法:
- 將初始 GET 請求發送到網站 URL
- 點擊“加載更多”按鈕
- 向下滾動您需要多少次(此串列適用于 700 多個品牌)
- 獲取資料
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/519385.html
