All Projects → panxl6 → Douban Movie

panxl6 / Douban Movie

豆瓣电影爬虫

Programming Languages

python
139335 projects - #7 most used programming language
python3
1442 projects

Labels

Projects that are alternatives of or similar to Douban Movie

Meizi
豆瓣妹子图iOS客户端
Stars: ✭ 778 (+329.83%)
Mutual labels:  douban
Paperplane
📚 PaperPlane - An Android reading app, including articles from Zhihu Daily, Guokr Handpick and Douban Moment.
Stars: ✭ 1,147 (+533.7%)
Mutual labels:  douban
Movie Board
Re-design and implement Douban Movie with React and Redux.
Stars: ✭ 140 (-22.65%)
Mutual labels:  douban
Douban Books Results
Douban books grabbed from doulists, series, and tags.
Stars: ✭ 38 (-79.01%)
Mutual labels:  douban
Douyaapikey
豆芽 API Key 设置向导
Stars: ✭ 65 (-64.09%)
Mutual labels:  douban
Douban Movie
Golang爬虫 爬取豆瓣电影Top250
Stars: ✭ 114 (-37.02%)
Mutual labels:  douban
Wechat Miniprogram Examples
WeChat mini program examples. 微信小程序示例
Stars: ✭ 634 (+250.28%)
Mutual labels:  douban
Wxapp Douban Api Movie
Douban movie api data completed a WeChat applet wxAPP, very suitable as a small program beginners combat project!
Stars: ✭ 161 (-11.05%)
Mutual labels:  douban
Lxspider
爬虫案例合集。包括但不限于《淘宝、京东、天猫、豆瓣、抖音、快手、微博、微信、阿里、头条、pdd、优酷、爱奇艺、携程、12306、58、搜狐、百度指数、维普万方、Zlibraty、Oalib、小说、招标网、采购网、小红书》
Stars: ✭ 60 (-66.85%)
Mutual labels:  douban
Doufen
将你的豆瓣帐号数据备份到本地并支持脱机浏览
Stars: ✭ 134 (-25.97%)
Mutual labels:  douban
Socialite
Socialite is an OAuth2 Authentication tool. It is inspired by laravel/socialite, you can easily use it without Laravel.
Stars: ✭ 1,026 (+466.85%)
Mutual labels:  douban
Flutter douban
豆瓣Flutter版
Stars: ✭ 53 (-70.72%)
Mutual labels:  douban
Doubanauto
Automatic Robot for Douban | 豆瓣机器人:自动加入/退出小组、自动在小组发帖/删帖、自动回复
Stars: ✭ 116 (-35.91%)
Mutual labels:  douban
Douban spider
一个简单的豆瓣信息爬虫😄
Stars: ✭ 8 (-95.58%)
Mutual labels:  douban
Movie Compare
豆瓣电影的评分靠谱吗?——一点数据分析的视角
Stars: ✭ 141 (-22.1%)
Mutual labels:  douban
Focuslayoutmanager
有焦点item的水平/垂直滚动RecyclerView-LayoutManager。仿Android豆瓣书影音“推荐“频道列表布局
Stars: ✭ 772 (+326.52%)
Mutual labels:  douban
Xiangxuema
“想学吗”个人知识管理与自媒体营销工具
Stars: ✭ 1,321 (+629.83%)
Mutual labels:  douban
Douban2piratebay
在豆瓣电影页面里添加一个指向海盗湾的链接
Stars: ✭ 162 (-10.5%)
Mutual labels:  douban
Mung
是一个基于React-Native编写,使用豆瓣开源API开发的一个项目
Stars: ✭ 157 (-13.26%)
Mutual labels:  douban
Douban crawler
备份豆瓣计划
Stars: ✭ 124 (-31.49%)
Mutual labels:  douban

豆瓣电影爬虫

  豆瓣电影数据库是目前高质量电影信息的聚集地。对于一些视频聚合应用、数据挖掘应用等场景,豆瓣电影数据库仍然是一个很好的选择。如果你只需要小规模的数据集请使用八爪鱼或者火车头之类的抓取工具。

  本着不重复造轮子的理念,我调研了github上关于豆瓣的电影信息的爬虫程序。找到了一个star比较多(唯一一个50star以上)的一个项目doubanspiders

该项目存在一些问题:

  • 没有实现模拟登陆,被豆瓣的反爬虫机制阻止。无法继续抓取
  • 使用的相关库在windows下安装困难,但没有相关的文档
  • 可定制性较差。不支持选定抓取字段
  • 抓取效率较低
  • 不支持后台运行

本文在关注以上问题的基础上重新设计豆瓣爬虫程序。

遍历方式介绍

本文涉及的遍历思路有两种:

  • 根据id进行遍历
  • 根据关键词种子,遍历搜索结果

根据id进行遍历

豆瓣电影信息的url格式为:https://movie.douban.com/subject/id。例如:https://movie.douban.com/subject/26683290/

豆瓣是从2005年创办的,2005年以前的电影信息id很可能是最早的id。

搜索1999,得到一个1998年的电影。https://movie.douban.com/subject/1303954/。 id编号是七位的数字:1303954。搜索2016,得到最新的电影。https://movie.douban.com/subject/26928204/。 id编号是八位的数字:26928204。 由此猜测,目前(2016年)豆瓣电影的id大致是1300000到27000000。

由于反爬虫的设计,id是不连续的。为了提高命中率,需要对id的分布规律进行分析。

根据关键词种子,遍历搜索结果

豆瓣电影提供了搜索接口。通过关键词搜索得到相关记录的链接。 比如按年份获取,关键词可为:2005,2006,....2016。 比如分分类获取,关键词可为:动作,冒险,爱情,记录...。

总结

需要较为完整的数据库信息,可采用id遍历。 抓取的目的性较强时,可以采用关键词抓取。

TODO:

  • [ ] 豆瓣的URL设计是比较符合RESTful规范的。根据豆瓣的id即可抓取其他相关的资源
  • [ ] 由于豆瓣的反爬虫机制,id是稀疏。可以考虑筛选一些没有内容的id以提高命中率。
  • [ ] 由于豆瓣限制了每个IP允许抓取的访问次数,可以使用代理IPproxymesh来提升抓取速度
  • [x] 更新包依赖

影评:https://movie.douban.com/subject/26366465/reviews

图片:https://movie.douban.com/subject/26366465/all_photos

预告片:https://movie.douban.com/subject/26366465/trailer

使用说明

默认设置

  • 测试用的账号密码
  • 默认为csv方式存储,存储路径为程序当前路径
  • 默认遍历方式为id遍历
  • 安装依赖:pip3 install -r requirements.txt

演示

数据库设计

很明显,项目中的数据库设计是不符合数据库范式的。为了上手容易,一切从简。

法律义务

该爬虫仅为个人研究。如有商业用途请与豆瓣联系或参考相关法律约束。

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].