我如何从评论而不是回复中得到日期?
目前的代码是:
date_ref = driver.find_elements(By.TAG_NAME, "time")但这既能从评论中得到日期,也能得到回复。
评论
<time datetime="2022-02-03T06:11:02.000Z" class="" data-service-review-date-time-ago="true" title="Thursday, 3 February 2022, 05:11:02 pm">3 Feb 2022</time>答复
<time datetime="2022-02-07T03:31:52.999Z"
class="typography_typography__QgicV typography_bodysmall__irytL typography_color-gray-6__TogX2 typography_weight-regular__TWEnf typography_fontstyle-normal__kHyN3 styles_replyDate__Iem0_" data-service-review-business-reply-date-time-ago="true" title="Monday, 7 February 2022, 02:31:52 pm">7 Feb 2022</time>我如何从评论中获取日期,而不是回复?
谢谢
发布于 2022-06-21 05:25:52
您使用的是TAG_NAME,这对于评论和回复都是一样的。因此,2 nodes的结果(可能有很多,但这取决于您的HTML-DOM)。
如果您想要区分节点,我发现data-service-review-date-time-ago属性是惟一的。
因此,将其更改为CSS/XPATH都可以完成任务。
CSS: time[data-service-review-date-time-ago]
XPATH: //time[@data-service-review-date-time-ago]
您可以使用driver.find_element(By.XPATH, "//time[@data-service-review-date-time-ago]")或driver.find_element(By.CSS_SELECTOR, "time[data-service-review-date-time-ago]")等方式调用它们。
另外,请注意,您使用的是find_elements,这将返回一个web元素列表,如果您是针对第一个节点,则可能希望使用find_element。
https://stackoverflow.com/questions/72695178
复制相似问题