如何爬取豆瓣电影top250数据?
2021-01-04 10:46:56 阅读(625) 评论(0)
标签(空格分隔):python爬虫1。爬网页,获取所需内容。我们今天要爬的是豆瓣电影top250页,如下所示:我们需要的是电影分类,我们可以通过查看源代码来分析我们需要的东西。直接进入主题吧!知道我们需要的内容在哪里,然后先用我们python强大的request库获取网页内容。获取内容后,使用易于使用的lxml库来分析网页内容,然后获取我们的内容进行下一步操作。先贴出使用request库和lxml分析的代码defget_page(i): url='https://movie.douban.com/top250start={}&filter='.format(i) html=requests.get(url).content.decode('utf-8') #使用request库获取网页内容 selector=etree.HTML(html) #使用lxml库提取内容 ''' 内容的一部分可以通过观察页面找到 ''' content=selector.xpath('//div[@class="info"]/div[@class="bd"]/p/text()') print(content) foriincontent[1::2]: print(str(i).strip().replace('nr','')) #print(str(i).split('/')) i=str(i).split('/') i=i[len(i)-1] key=i.strip().replace('n','').split('')#使用这里的strip和replace的目的是去除空间和空行 print(key)通过获得的内容,我们发现一部电影的所有内容都是用‘/’分开的,我们只需要提取电影分类中的东西,所以我们需要使用i=str(i).split('/')将内容分成几个内容,因为电影分类排在最后,所以我们通过i=i[len(i)-1]获得分隔后的最后一项是我们需要的电影分类,以及我们需要完成的最后一步,因为一部电影通常有多个电影分类的标签,所以我们必须继续分离获得的电影分类,观察可以知道电影分类之间只有一个空间,所以我们可以使用以下代码分离每个分类:key=i.strip().replace('n','').split('')2、下一步是将电影分类存储在mysql数据库中,以便进行以下数据分析。在这里,我们使用pymysql连接mysql数据库。首先,我们需要在mysql数据库中建立一个表:然后我们通过pysql将数据存储到数据库中,代码如下:首先,连接数据库:#连接mysql数据库connn=pymysql.connect(host='localhost',user='root',passwd='2014081029',db='mysql',charset='utf8') #user是数据库的名称,passwd是数据库的密码,通常将字符集定义为utf8,否则,存入数据库很容易遇到编码问题=conn.cursor() #获取操作游标cur.execute('usedouban') #使用douban这个数据库在保存到数据库之前,我们还需要做的另一件事,那就是对250部电影的分类进行总结,因此,我们定义了一个字典来统计电影分类的数量,这里的代码是get_page函数的一部分,代码如下: foriincontent[1::2]: print(str(i).strip().replace('nr','')) #print(str(i).split('/')) i=str(i).split('/') i=i[len(i)-1] key=i.strip().replace('n','').split('') print(key) foriinkey: ifinotindouban.keys(): douban[i]=1 else: douban[i] =然后定义一个保存函数,执行插入操作。如果插入失败,则执行回滚操作。操作完成后记得使用conn.close()和cur.close()关闭数据库连接,代码如下:defsave_mysql(douban): print(douban) #douban在主函数中定义的字典 forkeyindouban: print(key) print(douban[key]) ifkey!='': try: sql='insertdouban(类别,数量)value(' "'" key "'," "'" str(douban[key]) "'" ');' cur.execute(sql) conn.commit() except: print('插入失败') conn.rollback()三、首先使用matplotlib进行数据可视化操作,将电影分类和每个分类的数量从数据库中存储在一个列表中,然后使用matplotlib进行可视化操作,具体如下:defpylot_show(): sql='select*fromdouban;' cur.execute(sql) rows=cur.fetchall() #读取表中的所有字段 count=[] #每个分类的数量 category=[] #分类 forrowinrows: count.append(int(row[2])) category.append(row[1]) y_pos=np.arange(len(category)) #定义y轴坐标数 plt.barh(y_pos,count,align='center',alpha=0.4) #Alpha图表的填充不透明度(0~1) plt.yticks(y_pos,category) #标记y轴上的分类名 forcount,y_posinzip(count,y_pos): #图中显示分类数的位置是柱状图尾部显示的数字 plt.text(count,y_pos,count, horizontalalignment='center',verticalalignment='center',weight='bold') plt.ylim( 28.0,-1.0)#可视化范围,相当于规定y轴范围 plt.title(u'豆瓣电影250') #图表的标题 plt.ylabel(u'电影分类') #标记图表y轴 plt.subplots_adjust(bottom=0.15) plt.xlabel(u'分类次数') #标记图表x轴 plt.savefig('douban.png') #以下是matplotlib保存图片的一些简单使用,首先,我们需要导入matplotlib和numpy包importnumpyasnpimportmatpliblib.这次pyplotasplt的可视化是柱状图,这里给出brah()函数的定义:barh()主要功能:制作横向条形图,横向条的矩形大小为:left,left width,bottom,bottom height参数:barh(bottom,width,he
推荐阅读
- 怎样制作微信小程序呢?手把手教你轻松制作小程序
虽然不少自媒体的工作者,或者是商家都明白微信小程序能够带来巨大的流量,但是却因为自己不懂设计的知识,或者是不知道该怎样进行代码编程,从而感觉制作小程序是非常难的,其实微信小程序的制作,远远没有我们想象的那样复杂,那么怎样制作微信…查看详情
- 小学生英语学习软件有哪些 小学生英语学习软件排行榜
现在很多的小学生都在学习英语了,现在市面上的英语学习软件又是非常多的,下面小编给大家来详细介绍一下小学生英语学习软件有哪些 小学生英语学习软件排行榜这一块的相关内容,希望能帮助到大家。 小学生英语学习软件排行榜 1、《外研通》 …查看详情
- WMS仓储管理信息系统主要功能模块解析
现代仓库管理流程十分复杂化,仅仅依靠人工管理非常难,一套WMS仓储管理信息系统显得非常必要,越来越多企业开始引入仓储管理系统,本次将就WMS仓储管理信息系统主要功能模块作出解析,帮助大家从功能方面更好选择仓储管理系统。 模块一:系统设置模块…查看详情
- 好看且简约的安卓手机桌面,亲测nice
安卓手机桌面太难看,怎么办?很多网友在使用自己的手机的时候,总是觉得自己的桌面过于简单,想要好看且简约的桌面。所以今天小编就大家推荐几款安卓手机桌面美化软件,以下软件都是小编亲测有用。感兴趣的朋友们可以下载下来看一下呢。 1…查看详情
- 制作ppt用什么软件?制作PPT哪个软件好
PPT软件制作相信在生活当中很多人都遇到过,比如说再进行文案讲解,或者是在进行教学制作的时候都可以制作成PPT,PPT制作其实相对来说比较简单,只有选择相关的软件进行制作,操作起来就比较简洁。那么制作PPT用什么软件呢?下面就来…查看详情
- 进行第44类商标注册不要误导认知,注意规避违规高发区!
第44类商标注册包括了由个人或机构向人或动物提供的医疗、卫生和美容服务,以及与农业、园艺和林业领域相关的服务。其中第4401医疗服务类中的医疗按摩40032、医疗保健440060、医疗辅助440087、理疗440097等小项是“欺骗性商标”…查看详情
- mvc框架是什么意思?
mvc框架淘汰了吗?淘汰了。 前后端分离来了,Node.js来了,前端工程师把MVC的职责都给抢走了,后端工程师真正成为了后端,只需要提供API给前端就行,再也不用关心redirectforward有什么区别,再也不用关心session、…查看详情
- 浏览器内核有几种类型
所有浏览器总共有哪几种内核?浏览器内核种类介绍。 1、Trident内核(IE内核):用它的浏览器有:ie、360浏览器 2、Webkit内核(谷歌内核):用它的浏览器有:谷歌浏览器、枫树浏览器、太阳花 3、Gecko内核:用它的浏览…查看详情
- 录屏软件哪个好 免费的手机录屏软件
当我们听到好听的音乐,看到它美丽的歌词海报时,可以使用录屏软件记录下来。录屏软件会获取屏幕权限、麦克风权限和存储权限,那各大应用商店里的录屏软件哪个好?让我来告诉大家伙。 1.KK录像机 它是一款完全免费的手机录屏软件,它…查看详情
- 市面上排名较好的erp企业都有哪些
随着科技革命的浪潮推动,经济全球化不断深入各行各业,使得企业生产分工愈加精细化,不断向集团化、多元化以及纵深化的方向发展。但是这其中的过程又是何等的艰辛,估计只有正在转型的企业才知晓。所以为了加快转型的步伐,部分企业会选择应用较好的erp软…查看详情
- wifi已连接不可上网是什么原因
WiFi显示已连接为什么不能上网?一、路由器不稳定 有些无线路由器、光猫(宽带猫)的质量比较差,长时间运行后会出现死机等一系列的问题。 二、宽带出现故障 如果你家的wifi,之前连接后可以上网,突然就出现了无法上网的这个问…查看详情
- 别让看不懂的crm系统介绍耽误你选型
目前国内的crm系统有很多,很多企业在选择时都会感到迷茫,不知哪个crm系统好用,不明确哪些crm厂商服务好。网上搜索的又都是广告,也没有crm系统介绍,完全是盲选,并且也不一定适合,在选型之路抓破脑袋!图片源于网络接下来小万就为大家作几款…查看详情
- 数控仿真系统有哪些?数控仿真系统专辑推荐!
数控仿真系统主要应用于计算机上面,精确的说是在计算机上面的一款模拟仿真技术,加工过程中的三维建模等等相关事宜,那么今天我们就来简单盘点一下,这东西到底是怎么回事,都有哪些。 1、斯沃数控仿真 这是一款针对数控行业所打造的数…查看详情
- 游戏版权贵吗?几万块能买到游戏版权吗
我们平时在手机上玩的游戏都是由游戏公司制作出来的,游戏的热度越高,受欢迎的人数就越多,所以很多人想通过游戏这方面做生意,那么就需要购买游戏版权,很多人都还不知道几万块能买到游戏版权吗,因此一直在犹豫当中。几万块能买到游戏版权吗 1…查看详情
- 蛋糕店常用收银系统哪家好?5家高分蛋糕店收银系统推荐
随着国人生活方式逐渐全球化,烘焙食品以其即买即食、种类丰富的特点成为越来越多消费者的一大喜好,商家如何在烘焙食品的红海中脱颖而出,蛋糕店的收银系统无疑是最重要的因素,蛋糕店常用收银系统哪家好?以下5家高分蛋糕店收银系统值得你收藏。 1. 银…查看详情
猜你喜欢
最新文章
扫码二维码
立即领取《千元实战营销秘籍》
还可免费试用营销管理系统
*如有疑问,请随时拨打免费咨询热线:400-0033-166
服务时间:8:30-18:00
软件企业
认定号:川RQ-2018-0216
高新技术企业
认定号:GR201951001121
关注微信公众号
和10万中小企业共同成长
扫码下载APP
享全方位服务一触即达
Copyright © 2004-2022 万商云集(成都)科技股份有限公司 版权所有 蜀ICP备12001963号-2 川公网安备 51010402000322号
快速找产品
找一找哪款产品适合您?
咨询热线:400-0033-166
免费查找信息保护中请放心填写-
-
电话沟通
在线咨询
获取方案
下载APP
官方微信
扫码下载APP
全方位服务一触即达
关注万商云集
和10万中小企共成长
TOP
企业首选的数字选用平台