2015-06-03 36 views
0

我試圖用Selenium,HTML標記如下提取星評級的評論星級:提取使用Selenium

<p class="inlineRating starRating"><span class="current-rating" style="width: 80%"> 
     Current Rating: 4</span></p> 

使用selenium,我這樣做

rating = driver.find_element_by_css_selector('#ctnStars > div.catRatings.firstEl.clearfix > p.inlineRating.starRating > span')  
rating = rating.text 

的我總是得到的輸出是:

當前評分:0

我也嘗試了xpath方法,scrapy正在面臨難以解決的頁面,我編碼在python。請幫忙。

頁網址:http://www.webmd.com/drugs/drugreview-19924-cyclophosphamide+intravenous.aspx?drugid=19924&drugname=cyclophosphamide+intravenous&sortby=3

+0

從哪個頁面提取這些值?請發佈網址。 – Jithin

+0

如果您在**總體用戶評級**中查看評級的源代碼,您將看到當前評級爲0.如果您在其他部分查看評級,則該值在此處爲好。 – peetya

+0

如果xpath,你可以試試這個'substring-after(// span [@ class =「current-rating」]/text(),「Current Rating:」) – splash58

回答

0

的XPath查找星級成效特定審閱者是:

//p[@class='reviewerInfo' and contains(text(),'Reviewer: Sandy')]/following-sibling::div//div[contains(@class,'catRatings firstEl clearfix')]//span[@class='current-rating']/text() 

你可以爲其他類別做同樣的...

1

由於有多個評論,driver.find_element_by_css_selector()調用可能會返回與您想象的不同的評論。你需要先找到評論者,然後才能得到評論。像應該工作(如果我得到的Python循環正確):

user_posts = driver.find_elements_by_css_selector('div.userPost') 
for each user_post in user_posts 
    effectiveness_rating = user_post.find_element_by_css_selector('#ctnStars > div.catRatings.firstEl.clearfix > p.inlineRating.starRating > span') 
相關問題