首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在IMDB上使用xpath或html选择器抓取正确的日期

问在IMDB上使用xpath或html选择器抓取正确的日期
EN

Stack Overflow用户
提问于 2020-12-31 03:54:04
回答 1查看 46关注 0票数 0

我试着从IMDB中找出一个演员的生日。

我没有收到与原始代码中提供的结果相同的结果

代码中提供的生日和所需格式:"yyy-mm-dd“

代码语言:javascript
复制
library(rvest)
link = "https://www.imdb.com/name/nm0000093/"
page = read_html(link)

Date <- page %>% html_nodes(xpath = '//*[@id="name-born-info"]/time') %>% html_text('')

是否需要选择另一个节点??

谢谢!

这些都不走运:

代码语言:javascript
复制
Date <- page %>% html_nodes(xpath = '/html/body/div[2]/div/div[2]/div/div[1]/div/div/table/tbody/tr[3]/td/div[3]/time') %>% html_attr('')

Date <- page %>% html_nodes(xpath = '/html/body/div[2]/div/div[2]/div/div[1]/div/div/table/tbody/tr[3]/td/div[3]/time') %>% html_text('')

Date <- page %>% html_nodes(xpath = '//*[@id="name-born-info"]/time') %>% html_attr('')
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-31 11:25:25

我认为只需检索单个节点,然后将实际的属性名称添加到html_attr中。我也会切换到更快的css类型选择器

代码语言:javascript
复制
Date <- page %>% html_node('time') %>% html_attr('datetime')

如果做不到这一点,您可以使用正则表达式

代码语言:javascript
复制
str_match(page %>% html_text(),'birthDate":\\s?"(\\d{4}-\\d{2}-\\d{2})"' )[1,2]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65512820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档