练习要求:
抽取某本书的前50条短评内容并计算评分的平均值。提示:有的评论中并不包含评分。
代码:
"""
Spyder Editor
This is a temporary script file.
"""
import requests
from bs4 import BeautifulSoup
import re
import time
total = 50
ans=0
i=1
kk=0
while total>0:
kk=total
try:
r = requests.get("https://book.douban.com/subject/30211681/comments/hot?p="+str(i))
except Exception as err:
print(err)
break
soup = BeautifulSoup(r.text,"lxml")
comments = soup.find_all('span', 'short')
pattern = re.compile('<span class="user-stars allstar(.*?) rating"')
p = re.findall(pattern, r.text)
for item in comments:
total -=1
if total<0:
break
else:
print(50-total, item.string)
for star in p:
kk -=1
if kk<0:
break
else:
ans+=int(star)
i+=1
print(ans/50/10)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)