【问题标题】:Trouble scraping a html table rvest无法抓取 html 表格 rvest
【发布时间】:2019-01-06 21:33:24
【问题描述】:

试图刮https://www.cefconnect.com/closed-end-funds-daily-pricing 将 rvest 用于 R 数据帧。继续尝试各种 css 和 xpath 选择器,但无法收集主数据表。

使用了 'table'、'tbody'、'td' 和 'tr xpath 选择器但没有成功。两列是超链接,其余是静态文本。

URL <- 'https://www.cefconnect.com/closed-end-funds-daily-pricing'
html <- read_html(URL)

html2 <- html %>%
html_nodes(xpath = '//table') %>% 
html_nodes(xpath = '//td/a[1]/text()') %>%
html_text()
html3 <- as.data.frame(html2)

【问题讨论】:

    标签: css xpath web-scraping rvest


    【解决方案1】:

    当您在浏览器中加载网站时,尝试分析处理的请求。这可以通过在 Chrome 浏览器中浏览以下内容来完成。

    设置>>更多工具>>开发者工具(快捷键:Ctrl + Shift + I)

    执行此操作时,您可以看到以下请求之一 https://www.cefconnect.com/api/v3/DailyPricing?props=Ticker,Name,DistributionRateNAV,LastUpdated,Discount,DistributionRatePrice,ReturnOnNAV,CategoryId,CategoryName,IsManagedDistribution,Price,PriceChange,NAV,NAVPublished,Cusip/&_=1546832481302

    如果您单击上面的链接,您将看到以 JSON 格式显示在表格中的数据。这是您需要转换为数据框的内容。

    url<-"https://www.cefconnect.com/api/v3/DailyPricing?props=Ticker,Name,DistributionRateNAV,LastUpdated,Discount,DistributionRatePrice,ReturnOnNAV,CategoryId,CategoryName,IsManagedDistribution,Price,PriceChange,NAV,NAVPublished,Cusip/&_=1546832481302"
    
    
    library(rvest)
    page<-html_session(url)
    json<-readBin(page$response$content, what="json")
    
    library(jsonlite)
    df<-fromJSON(json)
    

    【讨论】:

    • 我很抱歉提出这样一个基本的后续问题,因为我非常感谢帮助使脚本正常工作,但我是网络抓取的新手。我了解您想要 JSON 格式的网站,但我无法在网页上找到您能够找到该确切网址的位置。你介意解释一下步骤吗?我很抱歉。
    • 非常感谢。这很有帮助!
    • 跟进问题,因为原始解决方案非常有用,我尝试在网站的另一个页面上使用它。您如何识别和刮取标签上标记为“全部”或“基金基础”的 cefconnect.com/fund/JLS 的文本表?当按照您为其他页面显示的过程并通过开发人员工具刷新时,页面会在“概述”选项卡上重新加载,并且不包括主要包含文本数据的表格,例如我提到的选项卡上的表格。
    • 对于某些股票代码,“基金基础”标签比其他标签有更多的面板。有没有办法总是拉出标有“基金信息”的表格,该表格似乎在所有网站的搜索中都是一致的?当字段位于不同节点(例如 JLS 和 QQQX)时,问题就变成了执行批量查询和重新组装结果。 url cefconnect.com/fund/JLS") 网页
    猜你喜欢
    • 2020-10-15
    • 1970-01-01
    • 1970-01-01
    • 2017-03-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多