大家好!
我在投资和网络数据搜集方面是新手。我一直试图自动数据收集检索在http://www6.sistemaindustria.org.br/gpc/externo/listaResultados.faces?codPesquisa=100
数据是excel格式的,我们在网页上下载。
我所做的是在一个名为“表”的对象中保存所有表节点(见下文),但我无法找到所需的信息(excel表)被检索。它们一定在“表节点”对象内部,但仔细调查后,我找不到它们。
有人能温柔地帮助我吗?

#代码:

URL基地

WWW <- "http://www6.sistemaindustria.org.br/gpc/externo/listaResultados.faces?codPesquisa=100。

Pg <- read_html(www)
表<- pg%>%html_nodes('table')

1像

@IVS,您需要检查特定节点或xpath以更好地下载表。

最终表显示178行,与页面相同。

library(rvest) library(tidyverse) library(stringr) url_data <- "http://www6.sistemaindustria.org.br/gpc/externo/listaResultados.faces?codPesquisa=100" ##读取URL,并选择节点。在这种情况下,xpath的表。url_data2 <- url_data %>% read_html() %>% html_nodes(xpath='//*[@id="listaResultadoForm:dtResult:n"]') %>% html_table() url_data2 <- data.frame(url_data2) url_data2 <- url_data2[-1,#删除第一行名称(url_data2)[1] <- 'Pesquisa'名称(url_data2)[2] <- 'Variabel'名称(url_data2)[3] <- 'Segmentacion'名称(url_data2)[4] <- 'Tema'名称(url_data2)[5] <- 'Tipo index '名称(url_data2)[6] <- 'Pond'名称(url_data2)[7] <- 'Defl'名称(url_data2)[8] <- 'Dess'名称(url_data2)[9] <- 'Intervalo'

亲爱的@M_AcostaCH谢谢你的回答。实际上,我一直试图downlad一些数据库是在页面内,而不是表本身(请,见附件的图像)。
事实上,你给我看的表格我下载起来没有任何问题。
我不知道如何自动下载这些数据。任何帮助都将不胜感激。

1像

也许使用Rselenium更好。我要为这个问题寻求一些帮助。

1像

也许RSelenium是一个选项:

但你需要安装一个特定的java版本和chrome驱动程序。

我使用xpath使点击在一个元素。在这一页xpath数字变化结果:0:checkValores用于选择其他项。如果您需要其他号码,您可以换掉这个号码。

#打开cmd设置驱动程序文件夹。#运行cmd # . jar文件的java jar selenium-server-standalone-3.2.0.jar - port 4444 #联结 -------------------------------------------------- remDr < - remoteDriver (remoteServerAddr =“localhost”,端口= 4444,browserName = "chrome") remDr$open() Sys.sleep(5) url_data <- "http://www6.sistemaindustria.org.br/gpc/externo/listaResultados.faces?codPesquisa=100" remDr$navigate(url = "http://www6.sistemaindustria.org.br/gpc/externo/listaResultados.faces?codPesquisa=100") # put click in [Valores] ----------------------------------------------------- Sys.sleep(1) remDr$findElement(using = 'xpath'," / / * [@ id = ' listaResultadoForm: dtResult: 0: checkValores ']”)美元clickElement() #把点击[Valores2 ] ----------------------------------------------------- Sys.sleep (1) remDr findElement美元(使用= xpath,“/ / * [@ id = ' listaResultadoForm: dtResult: 1: checkValores ']”)美元clickElement() #下载选择文件Sys.sleep (1) remDr findElement美元(使用= xpath,“/ / * [@ id = ' listaResultadoForm: btnExportarExcel2 ']”)美元clickElement ()

1像

@M_AcostaCH这真是太棒了。您的代码在最后按下“导出”按钮之前检查复选框。然而,用户仍然需要手动与浏览器交互,在下载弹出窗口中按下“OK”按钮。你知道有什么方法可以通过编程来实现吗?

1像

用户不应该进行交互,因为在选择要下载的框之后,它会告诉Rselenium它可以下载所选的文件。在剧本的最后一部分下载选定文件这是自动完成的。

1像

@M_AcostaCH,非常感谢。你的解决方案很有帮助,也很清楚。
再次感谢。

该主题在最后一次回复后7天自动关闭。不再允许新的回复。

如果您有一个与之相关的查询或其中一个回复,请开始一个新的主题并使用链接返回。