分析一波
爬取的地址:https://movie.douban.com/subject/26588308/comments
分别找出好评、一般、差评的评论:
- 通过地址栏分析,评论的类型和percent_type有关:
- 好评为h
- 一般为m
- 差评为l
但是我们想找的是在全部里面寻找好评一般和差评,所以这种方法就不适用了。
但是我们发现每个评论都会有小星星,星星的个数就可以区分评论的类型了。
- 好评为5颗星或4颗星
- 一般为3颗星
- 差评为2颗星或者1颗星
这里对应的标签为span(class就是星星的个数)
所以可以获取到每一个comment-item,然后判断里面allstarXX是多少,再把评论分类就可以了。
代码
#找出10页里的好评,一般或差评
import urllib.request
from bs4 import BeautifulSoup
import time
absolute = "https://movie.douban.com/subject/26588308/comments"
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36',
}
comment_list_h = [] #好评
comment_list_m = [] #一般
comment_list_l = [] #差评
#解析html
def get_data(html):
soup = BeautifulSoup(html,'lxml')
if soup.string != None:
return 0
else:
div = soup