专栏名称: 爬虫俱乐部
Stata技术控,编程技术咨询,数据讨论与分享,编程和实证培训。
目录
相关文章推荐
德州晚报  ·  中方宣布:迅速从伊朗、以色列撤侨 ·  昨天  
鲁中晨报  ·  甘甜温润,换季喝杯好茶! ·  昨天  
山东省交通运输厅  ·  山东省交通运输厅工程建设事务中心原创歌曲《匠 ... ·  昨天  
程序员的那些事  ·  神操作!中国工程师拖 4 箱硬盘 80TB ... ·  3 天前  
51好读  ›  专栏  ›  爬虫俱乐部

Python 爬取豆瓣电影评论并生成词云图(一)

爬虫俱乐部  · 公众号  ·  · 2018-05-31 10:20

正文

请到「今天看啥」查看全文


第二页:https://movie.douban.com/subject/24773958/comments? start=20&limit=20 &sort=new_score&status=P&percent_type=

第三页:https://movie.douban.com/subject/24773958/comments? start=40&limit=20 &sort=new_score&status=P&percent_type=

我们发现,每一页评论的url地址只有一个地方在变动,就是start=后面的数字,而且是以20的倍数增加,如果我们仔细数一下,就知道这个20代表的是每一页评论的开始是所有评论中的第几条,也就是评论的序号,后面的limit=20是代表每一页显示20条评论。

第一页没有后面的参数,我们可以为了方便自己加上(也就是start=0):

为了整齐,limit=20后面的部分可以不要,最终我们的url地址就变成这样:

https://movie.douban.com/subject/24773958/comments?start= 0 &limit=20

红色0 是我们需要作出改变的地方(每次加上20)。

我们先来看如何获取我们需要的网页:

在这里我们一定要先介绍一个Python第三方库:requests库。简单来说requests库就是为了能够从网络中获取网页内容的工具。

这里是官方网站: http://cn.python-requests.org/zh_CN/latest/

你可以在这里学习到requests更多的方法。有中文哦。

我们看一个例子:

get方法返回的就是包含了网页所有信息的对象,我们可以通过r.text将网页内容取出来。

import requests  # 导入requests库
r =requests.get("https://movie.douban.com/subject/24773958/comments?start=0&limit=20")  # 通过get方法,我们就能得到某一网页的源代码
html = r.text print(html)  # print打印内容

执行上面这几行代码,我们就得到了网页的源代码:如下图

接下来我们需要分析如何在网页中找到我们需要的评论内容。

这里再介绍一个Python第三方库:BeautifulSoup库。

BeautifulSoup 是一个可以从HTML或XML文件中提取数据的Python库.它能够将网页代码解析成一个由html标签构筑的标签树对象,并提供了丰富的方法让使用者从这个标签树中获取需要的信息。

这里是官方网站:

https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/

你可以通过这里的手册快速对BeautifulSoup库有个基本的了解。

我们可以通过pip方式进行安装:

在cmd命令行输入: pip install BeautifulSoup4

安装好之后就可以导入直接使用了。

我们使用from关键字进行导入: from bs4 import BeautifulSoup

每一个网页都是由不同的html标签构成的,比如段落就是p标签,他们成对出现,比如:

这里就是段落内容

。而标签和标签之间是可以嵌套的,也就是说可以一层包含一层的。所以,想得到里面的内容就需要先找到这个标签。

通过查看网页源代码可以发现,每个页面中的评论列表都在一个class=”mod-bd”,id=”comments”的div标签里,而每个评论者的评论内容都在该标签下的class=”” 的p标签内,如下所示

因此我们先要找到class=”mod-bd”的div标签

我们通过BeautifulSoup库可以很方便的找到这部分:

首先我们要通过BeautifulSoup将我们获取的网页内容转化成对象,并通过html.parser进行解析:

soup = BeautifulSoup(html, "html.parser"






请到「今天看啥」查看全文