求ClinicalTrials.gov术语搜索表格首块首列的CSS选择器
解决ClinicalTrials.gov表格首块首列提取问题
要只提取「Terms and Synonyms Searched」表格中对应"breast cancer"的第一个块的首列内容,你需要将CSS选择器限定在第一个块的容器内部,而非全局匹配所有符合条件的元素。
目标CSS选择器
.w3-row.w3-border-bottom:first-of-type .w3-padding-8:nth-child(1)
选择器说明
.w3-row.w3-border-bottom:first-of-type:精准定位页面中第一个带有w3-row和w3-border-bottom类的容器,也就是对应"breast cancer"的首个内容块- 后续的
.w3-padding-8:nth-child(1):在该容器内部,筛选出每一行的首列元素
修改后的R代码
search_term_processed <- unlist(stringr::str_replace("breast cancer", " ", "+")) ctgov_url <- paste0("https://clinicaltrials.gov/ct2/results/details?term=", search_term_processed) ct_page <- xml2::read_html(ctgov_url) # 仅提取第一个块的首列内容 ct_page %>% rvest::html_elements(".w3-row.w3-border-bottom:first-of-type .w3-padding-8:nth-child(1)") %>% rvest::html_text()
如果后续页面结构有调整,可通过浏览器开发者工具确认第一个块的父容器类名,再调整选择器的前缀部分,核心思路始终是用:first-of-type(或:nth-of-type(1))限定只取第一个块,再在内部提取目标列。
内容的提问来源于stack exchange,提问作者Howard Baik
相关产品推荐
相关产品推荐

