当前位置: 首页 > 知识库问答 >
问题:

如何使用R从这个网站的所有表格中抓取数据?

朱修德
2023-03-14

我需要从这个网站的所有表格中提取所有数据http://ncpscxx.moa.gov.cn/#/sing?headingIndex=true

我尝试过与rvest,但...

library(tidyverse)
library(dplyr)
library(rvest)

url <- "http://ncpscxx.moa.gov.cn/#/sing?headingIndex=true&item=1"

page <- read_html(url)

tables<- page %>%
  html_table(fill=TRUE) 

View(tables) # There is a null list :( 

我该如何解决这个问题?

共有1个答案

通骁
2023-03-14

您在屏幕上看到的数据不是HTML。您可以使用“httr2”或“httr”等包从网络部分收集的各种链接请求数据。这可以在开发者工具中找到。

这是右下角数据集的一个示例。

"http://ncpscxx.moa.gov.cn/product/livestock-product-feed/trend/count" %>%  
  request() %>% 
  req_user_agent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.102 Safari/537.36 Edg/104.0.1293.63") %>% 
  req_body_json(list(
    varietyCode = "AL01001", 
    queryEndTime = "2020", 
    queryStartTime = "2011"
  )) %>%  
  req_perform() %>%  
  resp_body_json(simplifyVector = TRUE) %>%  
  getElement(4) %>%  
  as_tibble

# A tibble: 7 x 3
  AMOUNT_FEED CHANGE_RATE REPORT_TIME
        <int> <chr>       <chr>      
1        8612 -           2014<U+5E74>     
2        7949 -7.7        2015<U+5E74>     
3        8298 4.39        2016<U+5E74>     
4        9078 9.4         2017<U+5E74>     
5        9584 5.57        2018<U+5E74>     
6        7651 -20.17      2019<U+5E74>     
7        8874 15.98       2020<U+5E74> 

 类似资料:
  • 问题内容: 这里, 这里有张桌子。我的目标是提取表并将其保存到csv文件。我写了一个代码: 我从这里迷路了。有人可以帮忙吗?谢谢! 问题答案: 因此,本质上您想解析出文件以获取文件中的元素。您可以将BeautifulSoup或lxml用于此任务。 您已经有使用的解决方案。我将使用发布解决方案:

  • 问题内容: 我正在用scrap。 我正在使用的网站具有无限滚动。 该网站上有大量帖子,但我只抓取了13。 如何scrape 其余的帖子? 这是我的代码: 问题答案: 我使用Selenium而不是,scrapy但是你必须能够执行等效操作,而我要做的是在加载文件时运行一些JavaScript,即: 而且我一直坚持下去,直到它不再滚动为止。它不是很漂亮,不能在生产中使用,但是对特定工作有效。

  • 我正试图浏览一个网站。我尝试过使用两种方法,但都没有提供完整的网站源代码,我正在寻找。我正试图从下面提供的网站URL中获取新闻标题。 URL:"https://www.todayonline.com/" 这是我尝试过但失败的两种方法。 请帮忙。我试着抓取其他新闻网站,这要容易得多。谢谢你。

  • 问题内容: 我正在尝试从PGA.com网站上获取数据,以获取美国所有高尔夫球场的表格。在我的CSV表中,我想包括高尔夫球场的名称,地址,所有权,网站,电话号码。有了这些数据,我想对其进行地理编码并放入地图中,并在计算机上拥有本地副本 我利用Python和Beautiful Soup4提取了我的数据。到目前为止,我已经提取了数据并将其导入CSV,但是现在我遇到了从PGA网站上的多个页面抓取数据的问题

  • 这是我正在努力浏览的网站:https://clinicaltrials.gov/ct2/results?term=wound照顾 具体来说,我想获得每个研究标题的链接,转到该链接,然后浏览特定页面的“资格标准”部分。 这是我一直在使用的代码: 现在:显然,我可以使用BeautifulSoup来解析该页面,但这不是我的问题。页面没有抓取该url上表中的任何数据。我不太清楚为什么。。。我认为这与请求有

  • 问题内容: 这是将单个表一分为二的结果: 要在只有一个表的情况下选择单个记录: 如何从两个表中获得所有记录,这些表的行由users.user_id = data.user_id连接? 问题答案: 使用显式语法可以为您提供帮助。将查询重写为: 并获取所有没有WHERE条件的行: 它将关注点分开:连接表的条件和限制结果集的条件。