【发布时间】:2021-09-22 05:23:54
【问题描述】:
我们正在从https://nbpa.com/agents/directory 提取联系信息。页面上没有表格,而是<div>s,里面有<p>元素:
我们可以通过以下方式获取这个元素:
agents_url <- "https://nbpa.com/agents/directory"
agents_page <- agents_url %>% read_html()
agents_page_elements <- agents_page %>% html_nodes('div.accordion-inner')
agents_page_elements[1]
agents_page_elements[1] %>% html_nodes('p')
我们希望将其转换为 1 行数据框:
Cell Email Professional Credentials:
(123) 456-7890 firstlast@email.com "NBA Certified Player Agent..."
这可能吗?这个网页抓取的挑战在于网站上的每个 accordion-inner div 都有不同的 p 元素。有些有 Cell: 和 Email:,其他有 Education:、Address: 等。它因手风琴内部而异。如果我们可以将每个单独的节点变成一个 1 行数据帧,我们就可以使用 plyr::rbind.fill() 将所有数据帧 rbind 在一起。
【问题讨论】:
标签: r web-scraping rvest