如何快速搭建个人影视库?影视资源站采集实战教程

拥有一个自己管理的个人影视库,可以优雅地整理收藏、记录观感,并摆脱在线平台的推荐绑架。本教程将指导您通过采集影视资源站的公开信息,快速搭建一个基于浏览器的本地个人影视库。

最终目标:一个运行在本地的Web应用,展示您采集/录入的影片信息,包括海报、简介、评分等,并支持搜索和分类筛选。

技术栈:Python (Flask/Django) + SQLite + HTML/CSS/JS。我们将使用Flask,因为它更轻量。

第一步:数据库设计
创建SQLite数据库movie_library.db,包含一张核心表:

sql
CREATE TABLE movies (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    title TEXT NOT NULL,          -- 片名
    year INTEGER,                 -- 年份
    director TEXT,                -- 导演
    actors TEXT,                  -- 主演(用逗号分隔)
    genre TEXT,                   -- 类型
    rating REAL,                  -- 评分
    summary TEXT,                 -- 简介
    poster_local TEXT,            -- 本地海报路径
    origin_url TEXT               -- 信息来源链接
);

第二步:编写采集模块(以TMDb API为例)
创建一个scraper.py文件,包含从TMDb搜索并获取电影信息的函数。

python
# scraper.py
import requests
import sqlite3
TMDB_API_KEY = ‘你的KEY’
def search_and_save_movie(movie_name):
    # 1. 搜索电影
    search_url = f‘https://api.themoviedb.org/3/search/movie’
    params = {‘api_key’: TMDB_API_KEY, ‘query’: movie_name, ‘language’: ‘zh-CN’}
    search_resp = requests.get(search_url, params=params).json()
    if not search_resp[‘results’]:
        print(‘未找到电影’)
        return
    # 取第一个结果
    movie_id = search_resp[‘results’][0][id]
    # 2. 获取详细信息
    detail_url = f‘https://api.themoviedb.org/3/movie/{movie_id}’
    detail_params = {‘api_key’: TMDB_API_KEY, ‘language’: ‘zh-CN’, ‘append_to_response’: ‘credits’}
    detail_data = requests.get(detail_url, params=detail_params).json()
    # 3. 解析并组织数据
    movie_info = {
        ‘title’: detail_data.get(‘title’),
        ‘year’: int(detail_data.get(‘release_date’, ‘0000).split(-)[0]) if detail_data.get(‘release_date’) else None,
        ‘director’: ‘, ’.join([d[‘name’] for d in detail_data.get(‘credits’, {}).get(‘crew’, []) if d[‘job’] == ‘Director’]),
        ‘actors’: ‘, ’.join([a[‘name’] for a in detail_data.get(‘credits’, {}).get(‘cast’, [])[:5]])# 取前5位主演
        ‘genre’: ‘, ’.join([g[‘name’] for g in detail_data.get(‘genres’, [])]),
        ‘rating’: detail_data.get(‘vote_average’),
        ‘summary’: detail_data.get(‘overview’),
        ‘poster_path’: f”https://image.tmdb.org/t/p/w300{detail_data.get(‘poster_path’)}if detail_data.get(‘poster_path’) else None,
        ‘origin_url’: f”https://www.themoviedb.org/movie/{movie_id}}
    # 4. 保存到数据库(函数略)
    save_to_database(movie_info)
    # 5. (可选)下载海报到本地‘static/posters/’文件夹
    download_poster(movie_info[‘poster_path’], movie_id)

您可以在 模板汇(code.jishujc.com 找到更完整的影视库采集与入库脚本模板,它通常包含了错误处理、批量录入和更多的数据字段。

第三步:构建Flask Web应用
创建app.py文件:

python
# app.py
from flask import Flask, render_template, request, jsonify
import sqlite3
app = Flask(__name__)
@app.route(/)
def index():
    conn = sqlite3.connect(‘movie_library.db’)
    conn.row_factory = sqlite3.Row
    cur = conn.cursor()
    genre = request.args.get(‘genre’)
    if genre:
        cur.execute(“SELECT * FROM movies WHERE genre LIKE ?”, (f‘%{genre}%’,))
    else:
        cur.execute(“SELECT * FROM movies ORDER BY year DESC”)
    movies = cur.fetchall()
    conn.close()
    return render_template(‘index.html’, movies=movies)
@app.route(/add’, methods=[‘POST’])
def add_movie():
    # 这里可以接收前端传来的电影名,调用scraper.py中的函数
    movie_name = request.json.get(‘name’)
    # 调用采集函数...
    return jsonify({‘status’: ‘success’})
if __name__ == ‘__main__’:
    app.run(debug=True)

第四步:创建前端页面
templates/index.html中,使用Jinja2语法和Bootstrap框架,循环显示movies变量中的电影信息,生成卡片列表。

运行与使用:

  1. 运行python app.py启动Web服务器。

  2. 访问http://127.0.0.1:5000

  3. 通过一个简单的表单或管理后台,输入电影名称,触发采集入库功能。

至此,一个具备采集能力的本地个人影视库就搭建完成了。您可以根据需要,继续添加编辑、删除、评分、标签等功能。这个项目完美融合了影视资源站采集与Web开发,是一个极具成就感的实战练习。

温馨提示:
本站所发布的全部内容源于互联网收集整理,仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,版权争议与本站无关。用户必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!
重点提示:
互联网转载资源会有一些其他联系方式,请大家不要盲目相信,被骗本站概不负责! 本网站部分内容只做项目揭秘,无法一对一教学指导,每篇文章内都含项目全套的教程讲解,请仔细阅读。 本站分享的所有平台仅供展示,本站不对平台真实性负责,站长建议大家自己根据项目关键词自己选择平台。 因为文章发布时间和您阅读文章时间存在时间差,所以有些项目红利期可能已经过了,需要自己判断。 本网站仅做资源分享,不做任何收益保障,希望大家可以认真学习。本站所有资料均来自互联网公开分享,并不代表本站立场,如不慎侵犯到您的版权利益,请联系本站删除,将及时处理!
如果遇到付费才可观看的文章,建议升级VIP会员。全站所有资源“VIP会员无限制下载”。

给TA打赏
共{{data.count}}人
人已打赏
其他教程

自动化x站资源采集方案搭建:Python脚本编写与实战案例

2026-1-10 19:07:29

其他教程

2026年热门影视资源站采集方案盘点:手动与自动方法详解

2026-1-10 19:09:12

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索