资讯专栏INFORMATION COLUMN

豆瓣电影,电视剧DM实战

phpmatt / 426人阅读

摘要:用户就我们这一个宿舍而其中电影的资源则是选择来自有大量电影电视剧信息的豆瓣。爬虫应对反爬虫机制目前来说豆瓣的反爬虫机制算是可以接受。

前言

前段时间和室友闹剧荒,于是萌生出一种做个私人化推荐系统想法。(用户就我们这一个宿舍)而其中电影的资源则是选择来自有大量电影电视剧信息的豆瓣。

目前,电影的信息已经抓取完毕,共有11159条JSON格式的数据,内容包括:

题目

时长

类型

导演

主演

地区

评分

2-3条短评

期间自己琢磨着一些推荐系统的算法,但又不想让这一万多条空闲着,于是期间跑了一个简单的数据分析的脚本,没有高大上的算法,只是做了简单的统计。好吧,我承认我题目起DM二字确实有标题党de意思。如果你还是感兴趣,欢迎往下看。


爬虫 应对反爬虫机制

目前来说豆瓣的反爬虫机制算是可以接受。你只需做到以下两点获取信息应该不成问题。

请求带上头部信息,尤其记得带上自己的cookie。

请求次数别太频繁,除非你的爬虫可以破解豆瓣的验证码问题。

任务队列

我的爬虫采用了广度优先的做法。你在获取一个电影页面的时候,同时会带有同类或相似影片的连接,将这些当成下一个访问点。

在访问的时候,你可能会遇到超时的问题,这时不要舍弃该URL,应对捕获超时异常后重新将URL回到任务队列的尾部,如果你直接舍弃了这个URL,会导致最后的结果有严重的数据缺失。比如我在第一次没考虑到这点,就只爬取到5000多条,少了将近一半。

另外一个要考虑到的就是,你必须记录已经访问过的URL,否则你的爬虫就会一直在死循环。

做到以上,应该就没太大的问题了。


数据分析结果

现在我们想看看演员和好片,烂片之间的关系(各选出前5名)。

现在以7分为标准

小于7分的

大于7分的

全部都是日本演员的名称。这里的补充说明一下,因为豆瓣并无显著信息表明是电视剧还是电影,所以
这数据在意料之外,比如说为什么好片没有某些美国演员的名字,坏片没有某些演员的名字,都可能是因为数据集中不仅仅是电影信息,同时混杂了大量的日剧信息有关。

不过当我把评价标准降低到5分时倒是发生了好玩的事情。

大于5分的

可以说,变化不算特别的大,然后我们再看看小于5分的,前5名演员


呵呵……

然后我们再来看看在5分的情况下,地区与好片,烂片的关系。

先来看好的

这张图就有些符合我们的预期了,接下来再看看坏的。

我只能说这个更是在意料之中了。就个人感受来说,国产虽然近年有所好转,不过明显还得继续努力……

接下来可以看看类型和影片时长的关系,在每个时间段中,选出前5名做代表。

每个时间段中,选出数量最多的前五名,制成饼状图,一目了然。可以发现其实每个时间段中剧情这个类别都是占了最大份额,平常看片的时候就感觉剧情这个分类莫名其妙,你要我说,我也实在说不出啥这类型片有啥特征。

后话

在知乎的回答

其实我还做了,像导演和好片烂片的关系,时长和地区的关系等等,这里碍于篇幅,不一一举例了,感兴趣的可以到我的github上获取爬虫和数据分析的脚本。

github地址

这个项目会记录我学习机器学习和数据挖掘这个过程的一些小作品,关于github上的BetaMeow的介绍可以看这里,至于本文说的内容在DouBanMovie的目录下。

如果你也有ML或DM的作品或小项目,欢迎推荐给我,我们可以互相给出友情链接,互相交流学习。如果你只是单纯对我的项目感兴趣,也欢迎watch或star支持一下,谢谢大家。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/37921.html

相关文章

  • 用python写一个简单的推荐系统

    摘要:前言在上篇文章豆瓣电影,电视剧实战中提及到,我和室友们产生了剧荒,萌生出要做一个个人用的推荐系统,解决剧荒的问题的想法,经过一轮的死缠烂打,这个个人推荐系统终于成型了。 前言 在上篇文章豆瓣电影,电视剧DM实战中提及到,我和室友们产生了剧荒,萌生出要做一个个人用的推荐系统,解决剧荒的问题的想法,经过一轮的死缠烂打,这个个人推荐系统终于成型了。 今天来分享一下心得,对此感兴趣的朋友可以自...

    William_Sang 评论0 收藏0
  • Python - 收藏集 - 掘金

    摘要:首发于我的博客线程池进程池网络编程之同步异步阻塞非阻塞后端掘金本文为作者原创,转载请先与作者联系。在了解的数据结构时,容器可迭代对象迭代器使用进行并发编程篇二掘金我们今天继续深入学习。 Python 算法实战系列之栈 - 后端 - 掘金原文出处: 安生    栈(stack)又称之为堆栈是一个特殊的有序表,其插入和删除操作都在栈顶进行操作,并且按照先进后出,后进先出的规则进行运作。 如...

    546669204 评论0 收藏0
  • Python

    摘要:最近看前端都展开了几场而我大知乎最热语言还没有相关。有关书籍的介绍,大部分截取自是官方介绍。但从开始,标准库为我们提供了模块,它提供了和两个类,实现了对和的进一步抽象,对编写线程池进程池提供了直接的支持。 《流畅的python》阅读笔记 《流畅的python》是一本适合python进阶的书, 里面介绍的基本都是高级的python用法. 对于初学python的人来说, 基础大概也就够用了...

    dailybird 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<