月度归档:2018年06月

记一次Python作业

以下是上交给老师的word文档,源码及相关文件可以通过这个链接获取:Onedrive分享或者到我的github上看。

现运用python语言对豆瓣电影TOP250进行电影信息的爬取、保存和统计等操作,以方便找出排名靠前的电影的一些简单特征。
数据源为: https://movie.douban.com/top250

基本过程:

  • 使用requests库提供的功能获取网页源代码

  • 从网页源代码中可以发现每部电影有标题、国家/地区、上映年份、类型、摘引等信息。

    提取方法:其中,标题和摘引可直接利用BeautifulSoup库按照标签进行提取。而年份、国家、类型这三种信息没有和标题、摘引类似的分类标签,不方便用BeautifulSoup进行直接提取,便采用BeautifulSoup获取大致区块,然后用正则表达式(re)的方法对其进行具体提取。

  • 利用csv库将获取的信息写入csv文件,因为utf-8编码的csv文件在Microsoft Excel中打开会出现中文乱码,故使用utf-16编码方式。然而用Microsoft Excel直接打开utf-16编码的csv文件不能实现自动隔列,于是又借助Excel自带的数据导入功能将csv文件的数据导入到Excel表中,并保存为一个新的xlsx文件,便于查看。

  • 从生成的csv文件读取信息,统计国家/地区,类型,上映年份所处年代出现的次数,分别将其排序,并输出到控制台。

  • 运用matplotlib库,根据前一步的统计,绘出三幅表示不同种类信息的饼状图(国家/地区,类型,年代)。其中还利用了numpy库的arange函数返回均匀间隔的值实现颜色的渐变。

文件目录结构解释:

结果分析:



  1. 从电影的制片国家/地区占比来看,美国占据第一的位置,表现了美国作为文化强势国家的地位,其好莱坞文化也正是大众所知的。
    其次是日本、英国、香港等发达国家或地区,说明电影工业的发展与经济发达程度有一定关系。
    日本、香港的表现突出,它们都处于东亚,这说明和观众所处的文化环境也有关系。
  2. 从电影的类型占比来看,“剧情”占据第一的位置,这是意料之中的。剧情是大多数电影的一个特性。
    其次是爱情、喜剧、犯罪等类型,从中可看出一部好电影是要能引起观众的感情共鸣,抓住观众兴趣的。
  3. 从电影的上映年份来看,近三十年的电影占了大部分,每个年代的占比相当,其中2000年到2010年间的数量最多。而80年代及之前的电影在TOP250相对很少。
    对于近三十年和三十年前的这个差距,一方面,和电影工业的发展有关,90年代开始可能迎来了电影的蓬勃发展阶段,而之前电影总数量本来就少,技术也不先进,做电影、看电影的成本大;另一方面,也与网站用户的接触面有关,现代人几乎不可能回过头去找寻时间过于久远的好电影,但也有例外——经典的电影即便是1950年以前上映的,也出现在这个榜单中。