分布式视频信息爬虫,抓取豆瓣,bilibili等中的电视剧、电影、动漫演员等信息
来源:互联网 发布:java decompiler 下载 编辑:程序博客网 时间:2024/04/29 06:33
项目地址:
https://github.com/billvsme/videoSpider
分布式视频信息爬虫,从豆瓣,bilibili等收集电视剧、电影、动漫、演员等信息,
使用:requests 发送请求,BeatufulSoup解析html,SQLAlchemy 作为ORM,Alembic数据库版本控制。
使用:协程(gevent)+多进程,分布式(Celery)
Doc
代码的文件结构
.├── README.md├── alembic├── alembic.ini # alembic.ini 配置文件,注意无需修改其中的'sqlalchemy.url'├── config # 存放配置信息├── helpers # 存放一些公共的函数 ├── models # model层├── start.py # cmdline├── tasks.py # 定义Celery任务└── webs # 存放各个网站的代码 ├── bilibili │ ├── parsers # 定义html解析函数 │ └── tasks # 调用parsers, 把解析出来的数据保存到数据库 └── douban ├── parsers └── tasks
model
流程
遇到的坑
- SQLAlchemy 多进程问题: http://docs.sqlalchemy.org/en/rel_1_0/core/pooling.html, 而且要注意更新session, 这就是为什么config中使用一个名叫sqla的字典来保存session和engine
- sqlite 对 alter 支持有问题。所以alembic 如果使用sqlite 注意: https://alembic.readthedocs.org/en/latest/batch.html
- alembic.ini 中的配置信息,可以在alembic/env.py 中使用config.set_main_option 定义
- lxml 安装: http://lxml.de/installation.html
Install
注意用pythone3
首先因为选择使用使用lxml解析html, 安装lxml库前需要安装相关c库
sudo apt-get install libxml2-dev libxslt-dev python-devsudo apt-get build-dep python3-lxml
virtualenv tv -p python3. tv/bin/activategit clone https://github.com/billvsme/videoSpidercd videoSpiderpip install -r requirements.txt
Usage
注意用pythone3
首先,设置配置config.ini
cp config/config_dev.ini config/config.inivim config/config.ini
config_dev.ini 默认配置,可以运行,最好自己修改一下(比如celery的backend)。
[database]database_url = sqlite:///tv.db #数据库test = false #是否输出SQLAlchemy 信息[photo]path = ./photo #下载图片存放等位置[qiniu] #七牛的配置access_key = xxxx secret_key = xxxxbucket_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
抓取电影、电视剧、动漫 信息(video)
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
1 0
- 分布式视频信息爬虫,抓取豆瓣,bilibili等中的电视剧、电影、动漫演员等信息
- 入门级爬虫 抓取豆瓣top250 的电影信息
- 豆瓣2100部动漫页面的网页源码(包括评分,导演,类型,简介等信息,附抓取代码)
- 爬虫扒下 bilibili 视频信息
- 使用python抓取豆瓣电影信息
- python爬虫之获取豆瓣电影信息
- 用Jsoup爬虫抓取豆瓣书籍信息
- 豆瓣获取电影信息
- BiliBili直播 弹幕信息抓取
- Bilibili爬虫之爬取视频和UP主信息
- Python爬虫入门 | 2 爬取豆瓣电影信息
- 抓取豆瓣影视信息
- Python爬虫之抓取豆瓣信息 全部网页显示
- pyspider 爬豆瓣电影信息
- 豆瓣分类排行电影信息
- 爬取豆瓣TOP250电影的评分、评价人数、短评等信息,并在其保存在sql数据库中。
- PHP 抓取豆瓣图书信息
- 爬虫抓取火车票信息
- 学习前端阶段性总结
- 编译器是怎么工作的
- Android 自定义View (一)
- 【技术】正则表达式—匹配电话号码,网址链接,Email地址
- 【Qtree】Query on a tree系列LCT解法
- 分布式视频信息爬虫,抓取豆瓣,bilibili等中的电视剧、电影、动漫演员等信息
- LA 3635(p30)----Pie
- 解决inode连接校园网后无法使用桥接网卡打开虚拟机
- 为什么Java字符串是不可变对象?
- 免费PHP基于Web的文件管理器
- CodeForces 608 B. Hamming Distance Sum(水~)
- 函数压栈及协议栈的基本技术
- DRP封装PageModel实现分页查询
- [BZOJ2324][ZJOI2011]营救皮卡丘