抓取豆瓣,bilibili等中的電視劇、電影、動漫演員等信息

項目地址:

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

model

流程

流程

遇到的坑

  1. SQLAlchemy 多進程問題: http://docs.sqlalchemy.org/en/rel_1_0/core/pooling.html, 而且要注意更新session, 這就是爲什麼config中使用一個名叫sqla的字典來保存session和engine
  2. sqlite 對 alter 支持有問題。所以alembic 如果使用sqlite 注意: https://alembic.readthedocs.org/en/latest/batch.html
  3. alembic.ini 中的配置信息,可以在alembic/env.py 中使用config.set_main_option 定義
  4. lxml 安裝: http://lxml.de/installation.html

Install

注意用pythone3
首先因爲選擇使用使用lxml解析html, 安裝lxml庫前需要安裝相關c庫

sudo apt-get install libxml2-dev libxslt-dev python-dev
sudo apt-get build-dep python3-lxml
virtualenv tv -p python3
. tv/bin/activate
git clone https://github.com/billvsme/videoSpider
cd videoSpider
pip install -r requirements.txt

Usage

注意用pythone3
首先,設置配置config.ini

cp config/config_dev.ini config/config.ini
vim 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 = 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

抓取電影、電視劇、動漫 信息(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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章