Python爬取豆瓣网影评展示
Python爬取豆瓣网影评展示
需要的库文件
- requests
- beautifulsoup
- wordcloud
- jieba
- matplotlib
本文思想
1.访问指定的网页
#获取指定url的内容
def load_html(url):html = requests.get(url)return html
我们爬取的是电影<<肖申克的救赎>>的影评,因为我们要对影评中的评价作展示,所以我们需要影评的条数尽可能的多一点.所以我们需要来自动翻页进行爬取.
首先我们来观察其url的规律,首页的url为 https://movie.douban.com/subject/1292052/comments?status=P,
我们点击翻页之后的url为:https://movie.douban.com/subject/1292052/comments?start=20&limit=20&sort=new_score&status=P ,我们可以看到的是当我们点击下一页之后.url多出来了 start=20&limit=20&sort=new_score&
这个内容.显而易见start代表的是页面开始时影评的第几条.limit为每一页显示多少条影评.因此我们可以根据这个规律来编写url
这里为循环获得翻页之后的网址进行爬取
for i in range(10):html = load_html(f"https://movie.douban.com/subject/1292052/comments?start={20*i}&limit=20&sort=new_score&status=P")
2.解析网页内容
我们可以通过F12
审查元素来查找自己想要爬取的内容信息,这里我们看到页面的影评处理span
标签中且其class=short
,所以我们可以指定对应的规则来获取其内容.
def parse_html(html):soup = BeautifulSoup(html.content)#得到一个BeautifulSoup的对象files = soup.find_all("span",class_="short")##寻找所有span标签且class=shortfor file in files:print(file)return files
结果为:
<span class="short">当年的奥斯卡颁奖礼上,被如日中天的《阿甘正传》掩盖了它的光彩,而随着时间的推移,这部电影在越来越多的人们心中的地位已超越了《阿甘》。每当现实令我疲惫得产生无力感,翻出这张碟,就重获力量。毫无疑问,本片位列男人必看的电影前三名!回顾那一段经典台词:“有的人的羽翼是如此光辉,即使世界上最黑暗的牢狱,也无法长久地将他围困!”</span>
<span class="short">人的生命不过是从一个洞穴通往另一个世界..然后在那个世界的雨中继续颤抖.i hope</span>
<span class="short">不需要女主角的好电影</span>
<span class="short">恐惧让你沦为囚犯,希望让你重获自由。——《肖申克的救赎》</span>
<span class="short">“这是一部男人必看的电影。”人人都这么说。但单纯从性别区分,就会让这电影变狭隘。《肖申克的救赎》突破了男人电影的局限,通篇几乎充满令人难以置信的温馨基调,而电影里最伟大的主题是“希望”。
当我们无奈地遇到了如同肖申克一般囚禁了心灵自由的那种囹圄,我们是无奈的老布鲁克,灰心的瑞德,还是智慧的安迪?运用智慧,信任希望,并且勇敢面对恐惧心理,去打败它?
经典的电影之所以经典,因为他们都在做同一件事——让你从不同的角度来欣赏希望的美好。</span>
<span class="short">Hope is a good thing, and maybe the best thing of all.</span>
<span class="short">墙里的人老是喊自由,可是墙外的我们真正得到了吗?</span>
<span class="short">策划了19年的私奔……</span>
<span class="short">不愧是好莱坞大片,一环扣一环,没想到最后不但逃生生天还偷偷把典狱长的贪污转移了出来,证据也送达了出去,帮助了曾经关心过自己的人,情节安排的巧妙,演员演绎的也好,是美国的,有爱国情节的我给打四分</span>
<span class="short">关于希望最强有力的注释。</span>
<span class="short">有种鸟是关不住的.</span>
<span class="short">超级喜欢超级喜欢,不看的话人生不圆满.</span>
<span class="short">常年霸占豆瓣电影第一名,在盛名之下看的,可能是心理预期太高,看过了之后反而又一点点失望。但它仍然是个好电影,越狱系列的no.1。在绝境之下不放弃自己,隐忍而睿智,知识永远是第一生产力。</span>
<span class="short">忒经典的东西,我要带去我的坟墓</span>
<span class="short">Fear Can Hold You Prisoner, Hope Can Set You Free</span>
<span class="short">没有人会不喜欢吧!书和电影都好。</span>
<span class="short">这样的男人谁会舍得背叛。。。</span>
<span class="short">一部没有爱情与美女的电影,却光芒四射</span>
<span class="short">因为1994年台湾引进了一部比较卖座的老片The Sting,被错译成了《刺激》。到了1995年本片上映时,片商觉得其剧情与《刺激》有类似的地方(大概都属于高智商的复仇?),因此被译成了《刺激1995》,1998年又有一部片子Return To Paradise因为含有牢狱情节,被译成《刺激1998》!</span>
<span class="short">hope is a good thing</span>
3.将爬取的内容保存至本地文件
def save(text,i):print(f"开始保存第{i}个页面内容...")with open(r"C:\Users\Lenovo1\Desktop\bear.txt","a")as f:for mes in text:try:f.write(mes.text+"\n")except Exception:print(f"第{i}个页面内容保存出错")
4.使用词云的形式展示出来
将爬取下来的内容保存在本地的文件中,然后使用jiaba
库和wordcloud
库来展示核心影评词汇.
def show(path):with open(path) as f:mes = f.read()seg_list = jieba.cut(mes,cut_all=False)#精确模式进行分词res = ",".join(seg_list)font="C:\Windows\Fonts\simhei.ttf"stopwords = ["本片","因为","一个","这么","一部","喜欢","就是","the","is","电影","我们","还有","什么","没有","每个","真的","片子","时候","这部"]#这里指定词云中不显示的词汇wc = WordCloud(font_path=font,min_font_size=5,max_font_size=50,stopwords=stopwords)#这里指定了字体,就不会出现不显示中文的情况wc.generate(res)plt.figure()plt.imshow(wc)plt.show()
结果展示:
注释:
这里所说的仅仅是爬虫的冰山一角.也可以说都不算爬虫.未来共同进步.
参考文档
- https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html#id5
- https://github.com/fxsjy/jieba
Python爬取豆瓣网影评展示相关推荐
- 完全小白篇-用python爬取豆瓣电影影评
完全小白篇-用python爬取豆瓣影评 打开豆瓣电影 随机电影的所有影评网页 跳转逻辑 分析影评内容获取方法 逐一正则提取影评 针对标签格式过于多样的处理 针对提出请求的频率的限制 存储方式(本次sq ...
- python爬取豆瓣网评并写入excel表格中
为了爬取网评我们需要导入几个模块 from selenium import webdriver import time import xlwt 先定义要爬取的网站url'以及设置浏览器参数 movie ...
- python爬取豆瓣网资源DIY影讯
输出结果: 名字:哆啦A梦:伴我同行2,链接:https://movie.douban.com/subject/34913671/,日期:05月28日,类型:剧情 / 动画,地区:日本, 关注者:17 ...
- python爬取豆瓣网即将上映的电影,数据信息存储到json文件
1,import库的安装,在我其它博文中有:获取豆瓣网即将上映的网页信息即HTML页面. 2,解析获取到的网页的数据信息 3将获取到的数据信息,放到json文件 4,主程序
- python爬取豆瓣电影评论_python 爬取豆瓣电影评论,并进行词云展示及出现的问题解决办法...
def getHtml(url): """获取url页面""" headers = {'User-Agent':'Mozilla/5.0 ( ...
- python爬取豆瓣影评理论依据_我用Python爬取了豆瓣的影评
使用Python爬取豆瓣的影评,比爬取网易云简单,因为不需要设置特定的headers,关于网易云说几句,很难爬取,对请求头有着严格的要求,前几年那会还好些. 爬取结果分为:用户名,评价的星级,评论的内 ...
- Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(下)
在Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(上)中,我们最后爬出来的结果不是很完美,这对于"精益求精.追求完美的"程序猿来说怎么能够甘心 所以,今天,用pyth ...
- python爬虫豆瓣电影评价_使用爬虫爬取豆瓣电影影评数据Python版
在 使用爬虫爬取豆瓣电影影评数据Java版 一文中已详细讲解了爬虫的实现细节,本篇仅为展示Python版本爬虫实现,所以直接上代码 完整代码 爬虫主程序 # 爬虫启动入口 from C02.data ...
- 用python爬取豆瓣影评及影片信息(评论时间、用户ID、评论内容)
爬虫入门:python爬取豆瓣影评及影片信息:影片评分.评论时间.用户ID.评论内容 思路分析 元素定位 完整代码 豆瓣网作为比较官方的电影评价网站,有很多对新上映影片的评价,不多说,直接进入正题. ...
最新文章
- STM32cube HAL库 UART串口中断方式收发任意长度 调试笔记
- 译:Spring Data Repository 不区分大小写查询
- 入栈和出栈c语言源程序,用c语言可执行文件实现顺序栈的出栈、入栈、判栈空、判栈满!急求啊? 爱问知识人...
- 排球积分程序(三)——模型类的设计
- SAP UI5里sap.m.shell的实现
- [置顶]动态网页开发基础【笔记】
- Git开发流程和工作流
- java 挖矿代码_我的大脑被挖矿代码搞的不能好好思考了
- 深拷贝与浅拷贝深入理解
- POS tagging中英文对应
- 安装 Windows 自动化 API 3.0 时,visual Studio 2010 更快地运行
- Vivado exception_access_violation
- *第七周*数据结构实践项目二【建设链式队列算法库】
- 5.数据结构 --- 数组和广义表
- 【企业级框架整合】Springmvc+mybatis+restful+bootstrap框架整合
- 温习下 function pointer.
- C# BitConverterExt 对BitConverter的GetBytes 方法扩展
- Qt 并行运算高级API QtConcurrent
- linux 设置系统时钟,linux clock命令查看和设置硬件时钟
- android底部导航切换实现(md)