rvest:如何在特定文本后捕获字符串

时间:2017-12-15 09:57:32

标签: r rvest

我在页面上:https://aplikacje.nfz.gov.pl/umowy/AgreementsPlan/GetPlans?ROK=2017&ServiceType=03&ProviderId=104056&OW=01&OrthopedicSupply=False&Code=3202801&AgreementTechnicalCode=1030545

标题中包含一些值

Rok: 2017
Oddział wojewódzki: Dolnośląski Oddział Wojewódzki Narodowego Funduszu  Zdrowia
Kod świadczeniodawcy: 3202801
Nazwa świadczeniodawcy: CHIRPLAST SPÓŁKA JAWNA IWONA RYCHLIK, DARIUSZ RYCHLIK
Kod umowy: 03/1/3202801/01/2017/01
Nazwa rodzaju świadczenia: Leczenie szpitalne

我只想抓住“Kod umowy”之后的价值

03/1/3202801/01/2017/01

我知道我需要填写参数

 kod_umowy <- html_nodes(pg, ????? )

对于x-path或css节点,但是没有标识符(因此在我看来)会识别位置,而是在值之前的字符串。

是否可以获取特定字符串后出现的第一个字符串? (可能在这个页面的情况下,它意味着进行/忽略一些html语法,以获得行中的下一个字符串)。

1 个答案:

答案 0 :(得分:2)

library(rvest)

pg <- read_html("https://aplikacje.nfz.gov.pl/umowy/AgreementsPlan/GetPlans?ROK=2017&ServiceType=03&ProviderId=104056&OW=01&OrthopedicSupply=False&Code=3202801&AgreementTechnicalCode=1030545")

html_nodes(pg, xpath=".//div[contains(., 'Kod umowy:') and contains(@class, 'col-sm-3')]/following-sibling::div[2]") %>% 
  html_text()
## [1] "03/1/3202801/01/2017/01"