使用 Selenium 提取元素的值
Extracting value of an element using Selenium
我正在使用 Python 3,我需要帮助来提取 HTML 代码中元素的值。网页代码的相关部分如下所示:
<span class="ng-isolate-scope" star-rating="4.61" size="22">
我目前正在使用 Selenium 和 get_attribute 函数,但我无法提取 4.61 值。由于我必须遍历多个网页,因此我的代码的相关部分如下所示:
stars=[]
i=driver.find_elements_by_xpath("//*[@star-rating]")
for y in i:
temp=str(y.get_attribute("value"))
stars.append(temp)
但它没有像我预期的那样工作。你能帮我看看我在这里做错了什么吗?非常感谢您的宝贵时间!
获取 star-rating
属性而不是 value
:
temp = y.get_attribute("star-rating"))
请注意,您不必对 get_attribute()
的结果调用 str()
- 您将获得字符串形式的属性值。
您还可以改进代码并使用列表理解在一行中收集评分:
stars = [elm.get_attribute("star-rating")
for elm in driver.find_elements_by_xpath("//*[@star-rating]")]
而且,如果您需要将评分作为浮点数,请调用 float()
:
stars = [float(elm.get_attribute("star-rating"))
for elm in driver.find_elements_by_xpath("//*[@star-rating]")]
而且,使用 CSS selector:
会更简洁一些
stars = [float(elm.get_attribute("star-rating"))
for elm in driver.find_elements_by_css_selector("[star-rating]")]
我正在使用 Python 3,我需要帮助来提取 HTML 代码中元素的值。网页代码的相关部分如下所示:
<span class="ng-isolate-scope" star-rating="4.61" size="22">
我目前正在使用 Selenium 和 get_attribute 函数,但我无法提取 4.61 值。由于我必须遍历多个网页,因此我的代码的相关部分如下所示:
stars=[]
i=driver.find_elements_by_xpath("//*[@star-rating]")
for y in i:
temp=str(y.get_attribute("value"))
stars.append(temp)
但它没有像我预期的那样工作。你能帮我看看我在这里做错了什么吗?非常感谢您的宝贵时间!
获取 star-rating
属性而不是 value
:
temp = y.get_attribute("star-rating"))
请注意,您不必对 get_attribute()
的结果调用 str()
- 您将获得字符串形式的属性值。
您还可以改进代码并使用列表理解在一行中收集评分:
stars = [elm.get_attribute("star-rating")
for elm in driver.find_elements_by_xpath("//*[@star-rating]")]
而且,如果您需要将评分作为浮点数,请调用 float()
:
stars = [float(elm.get_attribute("star-rating"))
for elm in driver.find_elements_by_xpath("//*[@star-rating]")]
而且,使用 CSS selector:
会更简洁一些stars = [float(elm.get_attribute("star-rating"))
for elm in driver.find_elements_by_css_selector("[star-rating]")]