服务热线:400-0033-166
万商云集 - 企业数字化选用平台

企业首选的

数字选用平台

如何爬取豆瓣电影top250数据?

2021-01-04 10:46:56 阅读(651 评论(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

内容来源:数据分析网,以上内容来源于网络,不代表本站观点,如有侵权,请联系删除。

推荐阅读

专利权转让的是什么权 专利权转让的哪些权

    在平时很多的小伙伴都不知道专利权转让的是什么权的基本情况,而且对专利权转让的是什么权都不是很熟悉,下面万商云集*就为大家整理了专利权转让的是什么权这方面的相关内容,希望下面的内容能帮助到各位。    一、专利权转让的是什么权  专利…查看详情

地址查询软件有哪些 地址查询软件排行榜

  现在很多的时候大家都会查询一些地址,其实现在导航app软件都是能查到的了,下面*就给大家来详细介绍一下地址查询软件有哪些 地址查询软件排行榜这一块的相关内容,希望能帮助到大家。  地址查询软件排行榜  1、《北斗导航地图》  通过卫…查看详情

*编辑图片的软件(*修图改尺寸大小)

现在很多人都会拍一些照片,大多数人因为想让图片看起来更加精致有氛围感,会选择一些图片编辑软件来美化图片,虽然相册有简单的编辑图片功能,但却不能满足需求,操作繁杂的P图软件还需要下载,很麻烦,为此小万给大家推荐几款能*修图改尺寸的编辑图片软件…查看详情

网站建设高端设计导航要简洁,布局要明了,配色还要洋气

企业都想拥有一个高端大气上档次的网站,但由于预算问题,大多企业都无法选择一个以设计为重的顶级网站建设公司。但也有解决办法,想要网站建设高端设计满足以下几点。图片来源于网络 网站建设高端设计可分为两大类,一类为视觉效果,一类为用户体验。◆ …查看详情

2022年域名备案步骤及流程

  现在随着互联网市场的规范化,很多的企业在经营网站的时候都需要企业备案,现在企业备案相对来说还是比较麻烦的,下面万商云集*给大家来详细介绍一下2022年域名备案步骤及流程,希望能帮助到大家。  什么是域名备案  网站备案类业务,是按照不同…查看详情

安全初创公司如何在行业中提升竞争力

内容的简要提纲:一、理想投资目标:下一代平台型公司二、时间维度是适合安全初创公司的切入点三、解决商业化、规模化困境的方法目标创是投的载体,创成功是投成功的源头。就我们投资的目标而言,是期望所投企业有机会成长为下一代平台型公司。我们对平台型公…查看详情

物业管理信息系统项目要有哪些基本功能呢?这些都是不可缺少的

现在已经进入到了一个智能化的时代,在各行各业都会利用智能化的一些设备,来提升工作的效率,同时也可以更好的为人们服务,比如说智能物业,往往就利用了物业管理信息系统的项目,从而为业主带来了更为安全和智能化的服务,那么物业管理信息系统…查看详情

申报地理商标的条件有哪些?

  在国家的大力推动农业经济发展下,各区域也积极响应,许多有特色的农产品也纷纷申报地理标志的证明商标。下面万商云集*就带大家来了解申报地理商标的条件,希望下面的内容能帮助到你。  申报地理商标的条件  1.申请地理证明商标的申请人(自然人、…查看详情

怎样才能做好网站运营

很多企业都有自己的企业网站,但是,不是所有的企业网站都在用心的运营,有些网站的运营就是抽点时间弄两下就完了,通常这样网站是很难有起色的,而不重视网站运营的原因就是不知道运营的重要性也不知道该怎样运营网站。另一种情况就是知道网站运营很重要,但…查看详情

手机呼叫转移怎么设置

  手机呼叫转移是一项非常实用的功能,可以将未接电话或忙线的来电转移到指定的电话号码,方便用户在无法接听时及时接收重要电话。在日常生活和工作中,设置手机呼叫转移非常重要,能及时处理各种紧急事件,提高通讯效率。本篇文章将详细介绍手机呼叫转移的…查看详情

介绍几款实用的库房管理软件,提升工作效率

仓库中的商品可能每天都需要出库和入库,同时还有可能会涉及到信息的查看等等,只是利用传统的方式,不仅非常的浪费时间,同时也增加了工作的难度,更容易出错,所以还是建议大家考虑一些库房管理软件,那么下面就为大家介绍几款实用的库房管理软…查看详情

2022公司推广业务哪个平台好

  在互联网上推广当然要选择推广效果好的,其实有很多平台,这里*给大家推荐下2022公司推广业务比较好的平台,知乎。  1、传播速度快,容易购买  可以通过内容种草,进行货找人,帮助用户寻找购物的灵感。而且知乎好内容能让人买非刚需的快消品,…查看详情

网上招聘实用的6款人才招聘系统推荐

随着近年来网络的不断普及,企业信息化已经遍地开花,各行业信息化对接也越来也紧密,比起人工招聘,利用互联网进行网上招聘更实在,这6款人才招聘系统,有需要的可收藏。 1.新云人才招聘 采用THINKPHP6.0开发,并且使用VUE.JSElem…查看详情

值得收藏的免费营销软件大排名

我们知道,在日常生活中,营销占着不可小觑的地位,特别是在信息大爆炸,互联网大发展的今天,如果作用好行销手段,那我们将会事半功倍,这里给大家盘点几款值得收藏的免费营销软件大排名供大家参考! 1.百分百QQ营销软件 这是一款由国内老牌软件品牌百…查看详情

供应链管理软件是什么?如何进行供应链管理软件排列?

现在随着科技的不断发展,在各个行业之中都穿插了各式各样的管理软件,而这些管理软件是否能为我们提供更好的管理服务呢,答案是必须的,这是正是有了这些软件才可以将我们的行业和新技术进行联系,在使得发展更加便利的同时也帮助了行业进步。供应链管理软件…查看详情

最新文章