我在这里问了我之前的问题:
Xpath pulling number in table but nothing after next span
这很有效,我设法在一个名为xpath checker的firefox插件中看到了我想要的数字。结果如下所示。
所以我知道我可以用这个xpath找到这个数字,但是当试图运行一个python scrpit来查找并保存它说它无法找到的数字时。
try:
views = browser.find_element_by_xpath("//div[@class='video-details-inside']/table//span[@class='added-time']/preceding-sibling::text()")
except NoSuchElementException:
print "NO views"
views = 'n/a'
pass
我没有通过不是最好的做法,但我只是在试图找到这个数字时测试这个。我想知道是否需要在xpath的末尾更改某些内容,例如.text,因为xpath检查程序通常会显示结果略有不同。如下所示:
我需要使用我给出的xpath而不是上面图片中使用的xpath,因为我只想要数字而不是日期。您可以在我之前的问题中看到部分来源。
提前致谢!在这里挠我的头。
答案 0 :(得分:1)
find_element_by_xpath()
中使用的xpath必须指向一个元素,而不是文本节点而不是属性。这是一件至关重要的事情。
这里最简单的方法是:
td
的文字(父母)span
的文字(儿童)代码:
span = browser.find_element_by_xpath("//div[@class='video-details-inside']/table//span[@class='added-time']")
td = span.find_element_by_xpath('..')
views = td.text.replace(span.text, '').strip()