我正在努力从tripadvisor的评论中获取日期。
我开始时:
日期有两种格式:普通的DD / MM / YYYY格式Opinión escrita el 21 mayo 2010
和相对日期格式Opinión escrita hace 4 días
。
'普通格式'有一个名为ratingDate
<span class="ratingDate">Opinión escrita el 25 octubre 2006</span>
'相对格式'有两个类ratingDate
和relativeDate
<span title="6 marzo 2016" class="ratingDate relativeDate">Opinión escrita hace 4 días</span>
我正在使用R和rvest
包来废弃日期。
url_hotel <- "https://www.tripadvisor.es/Hotel_Review-g562819-d237083-Reviews-or150-Hotel_Riu_Don_Miguel-Playa_del_Ingles_Maspalomas_Gran_Canaria_Canary_Islands.html#REVIEWS"
html_hotel <- url_hotel %>% read_html()
这是我的问题。当我尝试使用此代码废弃日期时
dates <- html_hotel %>% html_nodes(".ratingDate")
我只获得'正常日期'而不是其他日期
。尝试找到我到达here但
的解决方案dates <- html_hotel %>% html_nodes(xpath="//*[contains(concat(' ', normalize-space(@class), ' '), ' ratingDate ')]")
不行。我一直得到相同的结果。
Here有人试图从Tripadvisor获取相同的数据,但使用的是Python。他的回答都没有起作用
dates <- html_hotel %>% html_nodes(xpath='//div[@class="col2of2"]//span[@class="ratingDate relativeDate"/@title or @class="ratingDate"]')
有没有办法,设置一个好的XPath或其他什么来获得'相对日期'?
提前致谢。
答案 0 :(得分:0)
这是我的猜测,但由于我们不共享区域设置,因此您的日期拼写与我的日期拼写不同,并且代码在我的区域设置中提供NA,但请尝试此操作(基于我怀疑的正确日期格式)你的语言环境:
dates %>%
html_attr("title") %>%
strptime("%d %B %Y") %>%
as.POSIXct()
取自https://github.com/hadley/rvest/blob/master/demo/tripadvisor.R