繁体   English   中英

使用硒提取元素的值

[英]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() get_attribute() -您将获得属性值作为字符串。

您还可以使用列表推导来改进代码并在一行中收集评级:

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选择器会更加简洁:

stars = [float(elm.get_attribute("star-rating")) 
         for elm in driver.find_elements_by_css_selector("[star-rating]")]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM