R 使用网页的类从网页中提取链接列表

R 使用网页的类从网页中提取链接列表,r,web-scraping,rvest,R,Web Scraping,Rvest,我试图从四个链接列表中提取以下内容: PNADC_012018_20190729.zip PNADC_022018_20190729.zip PNADC_032018_20190729.zip PNADC_042018_20190729.zip 我看到它们都是一个叫做“jstree wholerow”的类的一部分。我不太擅长抓取,但我尝试使用以下规律捕捉此类链接: x <- rvest::read_html('https://www.ibge.gov.br/estatisticas/dow

我试图从四个链接列表中提取以下内容:

PNADC_012018_20190729.zip

PNADC_022018_20190729.zip

PNADC_032018_20190729.zip

PNADC_042018_20190729.zip

我看到它们都是一个叫做“jstree wholerow”的类的一部分。我不太擅长抓取,但我尝试使用以下规律捕捉此类链接:

x <- rvest::read_html('https://www.ibge.gov.br/estatisticas/downloads-estatisticas.html?caminho=Trabalho_e_Rendimento/Pesquisa_Nacional_por_Amostra_de_Domicilios_continua/Trimestral/Microdados/2018') %>%
  rvest::html_nodes("jstree-wholerow") %>%
  rvest::html_text()
x%
rvest::html_节点(“jstree wholerow”)%>%
rvest::html_text()
但是,我收到一个空向量作为输出


有人能帮忙解决这个问题吗?

尽管网页使用javascript,但文件存储在ftp中。它还有非常可预测的目录名

库(tidyverse)
图书馆(stringr)
图书馆(rvest)
#> 
#>附加包:“rvest”
#>以下对象已从“package:readr”屏蔽:
#> 
#>猜测编码
图书馆(RCurl)
#> 
#>正在附加包:“RCurl”
#>以下对象已从“package:tidyr”屏蔽:
#> 
#>完整的
链接[3]。”https://ftp.ibge.gov.br/Trabalho_e_Rendimento/Pesquisa_Nacional_por_Amostra_de_Domicilios_continua/Trimestral/Microdados/2018/PNADC_032018_20190729.zip"
#> [4] "https://ftp.ibge.gov.br/Trabalho_e_Rendimento/Pesquisa_Nacional_por_Amostra_de_Domicilios_continua/Trimestral/Microdados/2018/PNADC_042018_20190729.zip"
#选择2
链接%read_html()%%>%
html_节点(xpath='//td/a[@href]')%>%html_属性('href'))
链接[1]“PNADC_012018_20190729.zip”“PNADC_022018_20190729.zip”
#>[3]“PNADC_032018_20190729.zip”“PNADC_042018_20190729.zip”
stru_c('https://ftp.ibge.gov.br/Trabalho_e_Rendimento/Pesquisa_Nacional_por_Amostra_de_Domicilios_continua/Trimestral/Microdados/2018/,链接)
#> [1] "https://ftp.ibge.gov.br/Trabalho_e_Rendimento/Pesquisa_Nacional_por_Amostra_de_Domicilios_continua/Trimestral/Microdados/2018/PNADC_012018_20190729.zip"
#> [2] "https://ftp.ibge.gov.br/Trabalho_e_Rendimento/Pesquisa_Nacional_por_Amostra_de_Domicilios_continua/Trimestral/Microdados/2018/PNADC_022018_20190729.zip"
#> [3] "https://ftp.ibge.gov.br/Trabalho_e_Rendimento/Pesquisa_Nacional_por_Amostra_de_Domicilios_continua/Trimestral/Microdados/2018/PNADC_032018_20190729.zip"
#> [4] "https://ftp.ibge.gov.br/Trabalho_e_Rendimento/Pesquisa_Nacional_por_Amostra_de_Domicilios_continua/Trimestral/Microdados/2018/PNADC_042018_20190729.zip"

由(v2.0.0)创建于2021-06-11,它们不是链接。它们链接到一个javascript,该javascript处理下载数据和ftp下载的生成,但我怎么能提取这些数据呢?我不确定。可以在一个源文件(servicodados.ibge.gov.br/API/v1/downloads…)中对其中一个API调用进行反向工程。或者,使用浏览器自动化(如RSelenium)等方法,只需单击相应的元素即可。这是一个有趣的问题。我想这不是一个真正的选项,因为这是针对软件包的?但这些不被链接实际上是一个问题吗?在这个阶段,我只想要这些字符串,而不是下载任何对我来说不够的东西。主机经常更改每个文件的名称,因此这种方法不起作用。我正在寻找更强大的东西,只在页面结构上重新定义这四个名称似乎是永久的。主机会更改其中的哪一部分?在“zip_names”@ArthurCarvalhoBrito下,我添加了另一种先获取名称的方法。我怎么会错过这一点?干得好+