分析一波

爬取的地址: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 timeabsolute = "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 0else:div = soup.findAll(name="div",attrs={"class": "comment-item"})  #这里使用find_all不行for each in div:if each.find("span",attrs={"class":"allstar50"}) or each.find("span",attrs={"class":"allstar40"}):textword_h = each.find("span",attrs={"class":"short"}).textcomment_list_h.append(textword_h)if each.find("span",attrs={"class":"allstar30"}):textword_m = each.find("span", attrs={"class": "short"}).textcomment_list_m.append(textword_m)if each.find("span",attrs={"class":"allstar20"}) or each.find("span",attrs={"class":"allstar10"}):textword_l = each.find("span", attrs={"class": "short"}).textcomment_list_l.append(textword_l)#获取HTML
def get_html(absolute,i):url = absolute + '?start=' + str(i) + '&limit=20&status=P&sort=new_score'print(url)request = urllib.request.Request(url=url, headers=headers)html = urllib.request.urlopen(request).read().decode("UTF-8")flag = get_data(html)if flag == 0:return 0#将数据写入文件
def save_txt(h,m,l):with open("comment_type.txt","w",newline='',encoding="utf-8") as f:j = 1f.write('好评:')f.write("\n")for i in h:f.write('('+ str(j) + ')' +i)f.write("\n")j+=1f.write('一般:')f.write("\n")k = 1for i in m:f.write('(' + str(k) + ')' + i)f.write("\n")k += 1f.write('差评:')f.write("\n")p = 1for i in l:f.write('(' + str(p) + ')' + i)f.write("\n")p += 1if __name__ == '__main__':i = 0for j in range(0,10):flag = get_html(absolute,i)time.sleep(2)i += 20if flag==0:breaksave_txt(comment_list_h,comment_list_m,comment_list_l)

爬取豆瓣电影前十页的好评一般差评相关推荐

  1. 使用Selenium爬取豆瓣电影前100的爱情片相关信息

    slenium入门小练手之使用Selenium爬取豆瓣电影前100的爱情片相关信息 文章目录 什么是Selenium 1.准备工作 1.1 安装Selenium 1.2 浏览器驱动安装 1.3 环境变 ...

  2. 多进程爬取豆瓣电影前100,将数据导出为Excel表

    之前学习爬虫时,自己尝试写代码爬取的爬取豆瓣前100的电影,现在发表出来便于自己回顾知识点,该代码爬取速度还是非常快的,但是就是因为设置多进程爬取后爬取时间过快,如果不设置随机时间,没有代理IP,爬取 ...

  3. Python网络爬虫:利用正则表达式爬取豆瓣电影top250排行前10页电影信息

    在学习了几个常用的爬取包方法后,转入爬取实战. 爬取豆瓣电影早已是练习爬取的常用方式了,网上各种代码也已经很多了,我可能现在还在做这个都太土了,不过没事,毕竟我也才刚入门-- 这次我还是利用正则表达式 ...

  4. 爬取豆瓣电影排名前250部电影并且存入Mongo数据库

    2019独角兽企业重金招聘Python工程师标准>>> 需求:爬取豆瓣电影top250(https://movie.douban.com/top250)的电影数据: 标题(title ...

  5. python爬虫(一)爬取豆瓣电影排名前50名电影的信息

    python爬虫(一)爬取豆瓣电影排名前50名电影的信息 在Python爬虫中,我们可以使用beautifulsoup对网页进行解析. 我们可以使用它来爬取豆瓣电影排名前50名的电影的详细信息,例如排 ...

  6. Python第一战:爬取豆瓣排名前250的电影

    一.需求分析   爬取豆瓣电影Top250的基本信息,包括电影的名称.豆瓣评分.评价数.电影概况.电影链接等.(https://movie.douban.com/top250) 二.爬虫的定义   网 ...

  7. 爬取豆瓣电影TOP250的所有电影名称,网址为:https://movie.douban.com/top250

    2019独角兽企业重金招聘Python工程师标准>>> 所谓静态页面是指纯粹的HTML格式的页面,这样的页面在浏览器中展示的内容都在HTML源码中. 目标:爬取豆瓣电影TOP250的 ...

  8. jsoup爬取豆瓣电影top250

    文章目录 0.准备工作 1. 分析 2. 构思 3. 编程 3.1 定义一个bean,用于保存电影的数据 3.2 按照之前的构思进行编程 4.效果图 5.获取资源 5.1GitHub 5.2百度云 0 ...

  9. python爬取豆瓣电影评论_python 爬取豆瓣电影评论,并进行词云展示及出现的问题解决办法...

    def getHtml(url): """获取url页面""" headers = {'User-Agent':'Mozilla/5.0 ( ...

最新文章

  1. nvm 装 nodejs 重启终端失效的解决方法
  2. python怎么写文件-Python读写文件
  3. vmware nat模式网络不通_笨笨狗教你如何解决VMware虚拟机桥接网络不通问题?
  4. Linux内存背后的那些神秘往事
  5. Sql Server 字段类型说明
  6. 华为Y9 Prime 2019曝光:无刘海无水滴全面屏+升降前摄
  7. web前端开发论文写作_2019学习Web开发指南
  8. qt之qthread的使用
  9. MATLAB常用画图命令汇总【已坑】
  10. 计算机与汉字+输入速度+云输入法,计算机汉字三码输入法的制作方法
  11. Linux服务器开发学习方法
  12. python日期运算_Python:日期计算器
  13. 微信开发之网页返回关闭浏览器
  14. 《重构:改善既有代码的设计》读书笔记(上)
  15. 关于PCM音频重采样思路及注意事项(频率变换和通道数变换(单通道转双通道))
  16. 概率统计Python计算:样本数据的经验分布函数
  17. 产业学院的制度逻辑及其政策意义
  18. mysql命令行进行数据导入和导出
  19. 测试数据准备之 CMD 命令:copy(指定尺寸图片1M放大成6M)
  20. 网络offload之TSO、GSO、LRO、GRO

热门文章

  1. 2014年注电考试心得
  2. Mecha:将 Mesh 进行到底
  3. 开源网络压测工具dperf登上了github C语言趋势榜
  4. 减肥盘货之忙女人减肥美食打算
  5. 免费的股票成交额查询接口要到哪里找?
  6. logstash filter 过滤器详解
  7. 狂神说多线程学习笔记整理(二)~JUC并发编程
  8. LCD液晶显示屏工作原理
  9. 阿里云服务器ECS计算型c6和c6e有什么区别?还有c6a和c6t性能对比
  10. Git概念:什么是分支