videoSpider

分布式视频信息爬虫
授权协议 MIT
开发语言 Python
所属分类 程序开发、 脚本编程语言
软件类型 开源软件
地区 国产
投 递 者 寿飞飙
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

分布式视频信息爬虫,从豆瓣,bilibili等收集电视剧、电影、动漫、演员等信息,
使用:requests 发送请求,BeatufulSoup解析html,SQLAlchemy 作为ORM,Alembic数据库版本控制。 

使用:协程(gevent)+多进程,分布式(Celery)

安装

首先因为选择使用使用lxml解析html,安装lxml库前需要安装相关c库

sudo apt-get install libxml2-dev libxslt-dev python-dev
sudo apt-get build-dep python3-lxml

注意用python3

virtualenv tv -p python3
. tv/bin/activate
git clone https://github.com/billvsme/videoSpider
cd videoSpider
pip install -r requirements.txt

用法

注意使用python3首先,设置配置config.ini

cp config/config_dev.ini config/config.ini
vim config/config.ini

config_dev.ini默认配置,可以运行,最好自己修改一下(例如celery的后端)。

[database]
database_url = sqlite:///tv.db  #数据库
test = false                    #是否输出SQLAlchemy 信息
[photo]
path = ./photo                  #下载图片存放等位置
[qiniu]                         #七牛的配置
access_key = xxxx              
secret_key = xxxx
bucket_name = xxxx
[celery]                        #celery 配置
backend = db+sqlite:///celery_backend.sqlite     
broker = sqla+sqlite:///celery_borker.sqlite

然后生成数据库

alembic upgrade head

然后运行Celery

celery -A tasks worker  --loglevel=info

抓取电影,电视剧,动漫信息(视频)

python start.py video

抓取演员信息

python start.py celebrity

下载电影,电视剧,动漫,演员的图片到本地(大概需要10个小时,40G)

python start.py down-image

发布图片到七牛

python start.py upload-image

创建Whoosh索引

python start.py whoosh

 相关资料
  • 通过该接口可以获取指定分类下的视频信息,目前共两个版本,最新版为v2版, 当地址为: https://spark.bokecc.com/api/videos/category/v2 需要传递以下参数: 参数 说明 categoryid 视频分类的id,不可为空 userid 用户id,不可为空 num_per_page 返回信息时,每页包含的视频个数 注:阈值为 1~100 page 当前页码 返

  • 互联网时代的信息爆炸是很多人倍感头痛的问题,应接不暇的新闻、信息、视频,无孔不入地侵占着我们的碎片时间。但另一方面,在我们真正需要数据的时候,却感觉数据并不是那么容易获取的。比如我们想要分析现在人在讨论些什么,关心些什么。甚至有时候,可能我们只是暂时没有时间去一一阅览心仪的小说,但又想能用技术手段把它们存在自己的资料库里。哪怕是几个月或一年后再来回顾。再或者我们想要把互联网上这些稍纵即逝的有用信息

  • 读取视频信息 如需获取分P,需要以不同页码多次调用本接口 — @fython 调用地址 http://api.bilibili.cn/view 需要 App Key 参数 字段 必选 类型 说明 id true int AV号 page true int 页码 fav false int 是否读取会员收藏状态 (默认 0) 返回 返回值字段 字段类型 字段说明 play int 播放次数 revi

  • 通过该接口可以编辑指定视频的信息,地址为: http://spark.bokecc.com/api/video/update 需要传递以下参数: 参数 说明 videoid 视频id,不可为空 userid 用户id,不可为空 title 视频标题 tag 视频标签 description 视频描述 categoryid 视频子分类id playurl 视频播放页面地址,如果不编辑播放地址,请勿加

  • 通过该接口可以获取指定用户的有效视频的信息,目前共六个版本,最新版本为V6: a.当地址为https://spark.bokecc.com/api/video/v6 需要传递以下参数 参数 说明 userid 用户 id,不可为空 videoid 视频 id,不可为空 imagetype 返回封面截图的类型,默认值:0(0:小图;1:大图) format 返回格式,xml 或 json 返回数据v

  • 请求header PUT /v1/videos/{视频id} Authorization:Bearer {ACCESS TOKEN} Content-Type:application/json 注: 请将上方的{ACCESS TOKEN}替换为您的ACCESS TOKEN 请将"{视频id}"替换您需要获取的视频id 参数: { name:"文件新名字" } 成功返回: { res

  • 在前面我们已经掌握了Scrapy框架爬虫,虽然爬虫是异步多线程的,但是我们只能在一台主机上运行,爬取效率还是有限。 分布式爬虫则是将多台主机组合起来,共同完成一个爬取任务,将大大提高爬取的效率。 16.1 分布式爬虫架构 回顾Scrapy的架构: Scrapy单机爬虫中有一个本地爬取队列Queue,这个队列是利用deque模块实现的。 如果有新的Request产生,就会放到队列里面,随后Reque

  • 读取视频排行信息 调用地址 http://api.bilibili.cn/list 需要 App Key 参数 字段 必选 类型 说明 tid true int 分类编号 new排序为必填 其他为可选 exclude_tid false int 排除分类编号 不可与tid同时使用 mid false int 只显示该帐号投稿 begin false date 起始搜索日期 (格式:YYYY-mm-