2015-05-08 1 views
1

Я хочу, чтобы каждая оценку пользователей this link:Как получить текст, который является символом в теге, используя селен и питон?

данные-iconr = «U» этот рейтинг продукции 4,0 или что-нибудь

вы можете посмотреть на сНу теге

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

Есть ли способ получить рейтинг каждого пользователя?

Кроме того, как я могу получить xpath тега div, потому что он меняет класс каждого div?

ответ

0

Это может быть не пуленепробиваемый, но вы можете положиться на имя класса элемента, оно изменяется с рейтингом - например. для 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 
+0

Спасибо, это работает идеально. – Mukesh

Смежные вопросы