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

企业首选的

数字选用平台

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

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

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

推荐阅读

网上开店没货源怎么办?这几个稳定的货源渠道了解一下

货源的好坏影响着网店的运营,决定着品牌在消费者心中的刻板印象。因此,如何寻找货源、如何选择好货源,对于新手卖家来说至关重要,以下5个稳定货源渠道了解一下! 1. 阿里巴巴 阿里巴巴是国内最大的线上釆购批发平台,为数千万网商提供了海量商业信息…查看详情

json*解析怎么用

jsonpath可以用于解析网页数据吗?是的,JSONPath可以用来解析网页数据。它可以用来快速提取和检索任何给定网页数据中的元素,而不必手动检查或解析每个值。 它可以在JSON,XML,YAML和HTML之间方便地转换,使你使用一种格…查看详情

【了解国外知识产权登记内容】德国版权登记、专利申请流程

现今对作品申请版权登记、专利等以获得法律保护,已不仅限于国内了。我国创作者可在国外进行申请,外国人也可在我国进行申请。下面小万将为大家介绍关于德国版权登记、专利申请流程。 图片来源于网络 ▲ 德国版权登记流程:与我国版权登记流程几乎无区别…查看详情

美术作品著作权登记是什么?作品的发表时间如何确定?

一件美术作品可以带给我们艺术上的享受,美的享受。在现如今这个经济时代,一件完美的美术作品是可以通过买卖获取极大利益的,但是美术作品需要拥有版权,否则很容易被别人模仿,给自己的权益带来侵害。今天,小万就给大家说一说美术作品著作权登记那些事。 …查看详情

默认网关不可用如何解决?这几种方法可以解决

  对于路由器不熟悉的用户,可能不知道默认网关是什么,它是用于网络相连的系统,可以使得两台设备互相连接,但是很多的朋友在使用电脑路由器的时候经常遇到默认网关不可用这个情况,下面*就给大家来详细介绍一下默认网关不可用如何解决这一块的内容,希望…查看详情

六款好用的*客服系统免费版

随着科技的发展以及科技的进步,客服的工作也越来越复杂多样,客服系统软件可以使客服的工作变得系统化,调理化,下面我给大家介绍六款好用的*客服系统软件免费版。 1、米多客 米多客是由大连米云科技有限公司针对企业咨询开发的一款*客服工具。主要提供…查看详情

传统企业电商之路:开始之前

随着电商行业的发展,一个又一个的像“林氏木业”、“三只松鼠”等商业传奇不断的出现,传统企业主面对这不断严峻的竞争环境和新模式下快速成长的“新势力”的冲击中,纷纷也开始走了自己的电商之路,准备成为下一个歌颂的对象。但是多年的传统经验和身处高位…查看详情

推荐几款好用的英语小说软件,想看的应有尽有

喜欢看英语小说,不仅可以购买一些纸质小说,同时也可以选择好用的英语小说软件,应用起来更加的简单方便,其中所包含的内容也是非常丰富的,但是面对多种不同的英语小说软件,可能大家不知道该如何选择,那么下面就为大家推荐几款,好用的英语小…查看详情

靠谱的网上客服系统,帮助店铺智能留客

随着网络销售、*商铺的遍地开花,网上客服需求量也在逐渐增高,商户及网络平台对于网上客服系统的使用频率、使用要求随之变多。越来越多的商户希望可通过简单的*客服系统完成店铺的客服导入。那么,靠谱的网上客服系统有哪些呢? 1、智齿…查看详情

末世小说排行榜,这几本十分好看

在民间流传着某些年是世界末日的传说,人们对于世界末日也有着一定的好奇心,甚至打败了恐惧的心理,所以各种世界末日的小说和影片也迎刃而生,那么关于一些好看的末世小说进行介绍,想看的话一定不要错过。 1、狩魔手记 这部小说在20…查看详情

有哪些适合文本阅读的软件?这4款适合闲暇之余打发时间

现在社会,需要阅读的地方越来越多,我们能从阅读里获得的知识也越来越多。有哪些适合文本阅读的软件呢?快来看看我的推荐吧。 1.书旗小说 书旗小说app可以简单快捷的看各种小说,各种类型小说都可以选择,而且APP新手还有机会获得…查看详情

产品卖点找得好,品牌传播自然快

过去,企业提炼产品卖点是从自身出发,自己决定产品的优势是什么,然后通过媒体广告告诉消费者,那么有该卖点需求的消费者就可能成为企业的客户。但如今,市场产品包罗万象,同一类需求的产品可能存在成百上千种品牌,你的产品优势也正是别人的卖点。消费者成…查看详情

涵盖6大模块的创新智能化售后服务管理

售后服务是售后最重要的环节。售后服务已经成为了企业保持或扩大市场份额的要件(如舒达、天猫、京东等)。售后服务的优劣能影响消费者的满意程度。在购买时,商品的保修、售后服务等有关规定可使顾客摆脱疑虑、摇摆的形态,下定决心购买商品。优质的售后服务…查看详情

3款可以直接网页登陆的库存管理软件

库存的管理是一件非常重要的事情,但是,每个人对于库存管理的要求不一样,有的人会直接让员工做好管理,有的人则会选择软件管理,那么,关于网页库存管理软件都有哪些呢? 1、小库存管理 小库存管理聚集了库存量预警信息、订单管理、产品…查看详情

2021最新中国网店代运营前7排名

随着时代的发展,各行各业都涌现出了新的不一样,而网店代运营就是其中之一。它通过高效的服务、方便的管理闻名于世。本期*就整理了七个在本行业较为出名的网店代运营公司,希望能为各位提供帮助。 1.宝尊电商网店代运营 宝尊电商于2006年在上海成立…查看详情

最新文章