【发布时间】:2018-08-10 21:41:48
【问题描述】:
我是 Python 网页抓取的新手。我正在编写一个程序,试图通过在 Python 中使用 selenium 库来捕获名为“stat answers col-3”的类的编号 154。
<div id="user-card" class="user-card">
<div class="row col-content">
<div class="col-right col-4">
<div class="user-links">
<div class="user-stats">
<div class="row">
<div class="stat answers col-3">
<span class="number">154</span>
answers
</div>
<div class="stat questions col-3">
<span class="number">44</span>
questions
</div>
</div>
</div>
</div>
</div>
</div>
这是我的代码:
from selenium import webdriver
driver = webdriver.Chrome(executable_path="/Users/username/Downloads/chromedriver")
driver.get("website address")
content = driver.find_element_by_xpath('//div[@id="user-card" and @class="stat answers col-3"]').__getattribute__("number")
但是,我无法运行该程序。可以请任何人指出我犯错的地方。
【问题讨论】:
-
@Andersson 这个问题除了
.text之外还有多个问题。首先,OP 的定位器有点偏离。其次可能是由于某些因素 OP 想要使用getattribute()。将这两点结合起来,显然不是一个重复。请再看一遍。 -
@DebanjanB ,错误的定位器应该导致
NoSuchElementException这与如何提取文本问题无关。另请注意,Python 内置__getattribute__()与 Seleniumget_attribute()不同... -
@Andersson 没错。 OP 提到我无法运行程序,但从未提到
NoSuchElementException或InvalidSelector或wrong/no text?那么怎么可能是dup呢?此外,不要劝阻使用get_attribute(),因为该功能稳健、经过验证和有效。
标签: python selenium selenium-webdriver xpath css-selectors