【问题标题】:Scraping information from multiple collapsible tables从多个可折叠表中抓取信息
【发布时间】:2021-07-16 18:11:43
【问题描述】:

我想从该网页的“营养氮”标签http://www.apis.ac.uk/select-feature?site=1001814&SiteType=SSSI&submit=Next的可折叠表格中抓取信息

我一直在尝试使用:

url <- "http://www.apis.ac.uk/select-feature?site=1001814&SiteType=SSSI&submit=Next.html"  
html<-read_html(url)  
html %>%
  html_node("table.tab-tables") %>%
  html_text()

我似乎可以看出我做错了什么。

任何帮助将不胜感激,因为我对 R 很陌生

【问题讨论】:

  • 如果您更喜欢 pandas 和请求,那么我可以通过这种方式帮助您

标签: html r web-scraping


【解决方案1】:

当网站在浏览器中打开时,网站会加载额外的内容。为了获得这些内容块,您必须模拟常规浏览器行为(RSelenium 可以提供帮助),或者您可以深入了解浏览器在浏览网站时发出的网络请求。您可以在 Firefox 中通过右键单击页面上的任意位置并单击“检查”来执行此操作。检查界面打开,您会看到几个选项卡,其中一个显示“网络”。单击它并重新加载页面。您将看到列出的请求。它应该在 Chrome 中类似地工作。通过这样做,我发现有与网站上显示的每个选项卡(营养氮等)相对应的请求。您可以复制您感兴趣的选项卡的请求 URL,然后在浏览器中访问它,您会看到它显示的页面内容没有任何装饰和导航元素。

你现在可以轻松地刮掉这个,像这样:

library(rvest)
nnut_url <- "http://www.apis.ac.uk/sites/default/files/AJAX/srcl_2019/apis_tab_nnut.php?ajax=true&site=1001814&BH=&populateBH=true"

nnut_dom <- read_html(nnut_url)  

nnut_dom %>% 
  html_table()

您可能值得花时间与网站背后的组织联系,并向他们建议包括原始数据下载。一般来说,这会让其他人更容易使用他们的数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-19
    • 1970-01-01
    • 1970-01-01
    • 2016-05-23
    • 2014-05-15
    • 2021-08-01
    • 1970-01-01
    相关资源
    最近更新 更多