如何获得使用Selenium和Python标签中的符号的文本



我希望每个用户从此链接进行评级:

data-iconr ="u"此产生等级 4.0或任何东西

您可以看DIV标签

<div class="left bold zdhl2 tooltip icon-font-level-7" data-iconr="ù">Rated</div>

有什么方法可以获得每个用户的评分?

另外,我如何获得DIV标签的XPath,因为它更改了每个DIV的类?

它可能不是防弹的,但是,您可以依靠元素的类名称,它会随评级而变化 - 例如对于5.0,有icon-font-level-9类,4.5 -icon-font-level-8等。

实施:

import re
from selenium import webdriver

driver = webdriver.Firefox()
driver.get("https://www.zomato.com/ncr/salad-days-dlf-cyber-city-gurgaon")
mapping = {
    "icon-font-level-9": 5.0,
    "icon-font-level-8": 4.5,
    "icon-font-level-6": 3.5
    # ... TODO
}
pattern = re.compile(r"icon-font-level-d+")
for review in driver.find_elements_by_css_selector("div[itemprop=review]"):
    author = review.find_element_by_css_selector("div[itemprop=author] div[itemprop=name] a").text
    rating_class = review.find_element_by_xpath(".//div[. = 'Rated']").get_attribute('class')
    rating = mapping.get(pattern.search(rating_class).group(0))
    print author, rating

打印:

Vandhna Babu 4.5
Mohit Yadav 3.5
Pulkit1283 4.5
Grub Society 5.0
Joel George 5.0

最新更新