我使用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)
但它没有像我期望的那样工作。你能帮我解决我在这里做错的事吗?非常感谢你的时间!
答案 0 :(得分:3)
获取star-rating
属性而不是value
:
temp = y.get_attribute("star-rating"))
请注意,您无需在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 selector:
会更简洁一些stars = [float(elm.get_attribute("star-rating"))
for elm in driver.find_elements_by_css_selector("[star-rating]")]