我试图获取class
类的第一个span
的{{1}}名称。
在这种情况下,我想打印出“全明星40个主标题评分”。
我成功打印出了用户名,在这种情况下为“ lemon”。 但是我不知道如何访问班级名称并获得评分。
谢谢!
header
没有错误,但没有打印任何评级。
谢谢〜
答案 0 :(得分:0)
您只需将@class
添加到xpath:
rate = comment.xpath('//header/span[1]/@class')
print(rate)
请参见this example。
希望这对您有帮助!
答案 1 :(得分:0)
我更喜欢css选择器并使用刚刚提取的类
ratings = [(item.select_one('.name').text, ' '.join(item.select_one('.main-title-rating')['class'])) for item in soup.select('.review-item')]
您可以使用split或re提取实际星数:
from bs4 import BeautifulSoup as bs
import requests
import re
r = requests.get('https://movie.douban.com/subject/1291561/?from=showing')
soup = bs(r.content, 'lxml')
ratings = [(item.select_one('.name').text, re.search(r'(\d)',item.select_one('.main-title-rating')['class'][0]).groups(0)[0] ) for item in soup.select('.review-item')]
print(ratings)