使用Selenium提取星级

时间:2015-06-03 10:31:06

标签: python html css selenium xpath

我正在尝试使用Selenium从评论中提取星级评分,html标记如下:

 <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

2 个答案:

答案 0 :(得分: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')

答案 1 :(得分:0)

为特定审核人找到有效性的星级评分的xpath将是:

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

你可以对其他类别做同样的事情......