HTML этой части:
<div class="review-small-text">
<span class="stars-rate">
<span property="starsRating">
<i class="fa fa-star-yellow fa-star"></i>
<i class="fa fa-star-yellow fa-star"></i>
<i class="fa fa-star-yellow fa-star"></i>
<i class="fa fa-star-yellow fa-star"></i>
<i class="fa fa-star-yellow fa-star"></i>
</span>
</span>
<span property="reviewRating" typeof="Rating" style="display:none;">
<span property="ratingValue">5</span>
<span property="bestRating">5</span>
<span property="worstRating">0</span>
</span>
<span property="itemReviewed" typeof="Service" class="">Liposuction</span> </div>
Я пытаюсь извлечь рейтинг второго значения *1007* ratingValue определенного обзора, используя селен, и я попытался извлечь это значение с помощью этого селектора css:
'div.review-small-text>span:nth-of-type(2)>span:nth-of-type(1)'
но это дает мне пустую строку.
также пробовал это
'div.review-small-text>span:nth-child(2)>span:nth-child(1)'
так что я думаю, что проблема не в css-селекторе. Не отображать ни один не создает проблему здесь.
Есть ли какой-нибудь возможный способ извлечь это значение?
Исходный код Python, который я пробовал до сих пор:
from selenium import webdriver
import time
url = "myurlhere"
driver = webdriver.Chrome()
driver.get(url)
time.sleep(3)
all_reviews_listings = driver.find_elements_by_xpath("//div[@id='tab_reviews']/div[@class='provider_all_Reviews']/div[@id='pnlReviews']/div")
for review in all_reviews_listings:
review_rating = review.find_element_by_css_selector('div.review-small-text>span:nth-of-type(2)>span:nth-of-type(1)').text
print("Review Rating: ", review_rating)