我有一个内容为table的链接。我尝试的第一件事是找到是否有任何按钮可以点击,不幸的是没有。然后我尝试在R中使用一个名为XML
的包来获取不同节点之间的数据,以便自己建立一个数据框。
为了做到这一点,我需要知道我想要提取哪个节点(或HTML标记)。所以我右键单击Web浏览器并找到包含我想要的表的标记。
从<fieldset id="result"
开始表格的内容。我们还可以从浏览器中看到表格的第一行是<li class="vesselResultEntry removeBackground">
。
然后,当我尝试使用R下载此HTML时,我发现与该表相关的整个<li>
标记已消失,并由<li class="toRemove"/>
替换。下面是我的R代码:
library(XML)
url <- "http://www.fao.org/figis/vrmf/finder/search/#stats"
webpage <- readLines(url)
htmlpage <- htmlParse(webpage, asText = TRUE)
data <- xpathSApply(htmlpage, "//ul[@id='searchResultsContainer']")
data
# <ul id="searchResultsContainer" class="clean resultsContainer"><li class="toRemove"></li></ul>
我在代码中尝试做的只是看看我是否可以获取特定标记中的内容。显然,我想要获取的行不在我保存的对象(webpage
)中。
所以我的问题是:
有没有办法以任何方式下载我想要的表格(理想情况下在R中)?
这个网站是否有某种保护措施阻止我将整个HTML作为文本文件下载并获取数据?
非常感谢任何建议
答案 0 :(得分:2)
您尝试提取的页面会在加载时在浏览器端动态汇编。通过直接获取URL获得的内容不包含您在查看DOM时看到的数据。稍后将从单独的URL加载该数据。
我看一下,有问题的网址是:
我不确定大多数查询字符串是什么,但很清楚ps
是&#34;页面大小&#34;并且o
是&#34;偏移&#34;。页面大小似乎达到200以上,它被强制为30. URL返回JSON,因此您需要一些方法来解析它。回复中嵌入的数据显示有231047个条目,因此您必须提出多个请求以获取所有条目。
数据提供商通常不会欣赏人们像这样搜索他们的数据。您可能希望四处寻找可下载的版本。