地址发布 老王说明书 宣传中心
此板块只作为纯讨论

正经话题,不搞色情!贤者时间必备
查看: 379|回复: 2
收起左侧

[学习讨论] 基于Python的FC2视频批量化重命名为原视频标题的代码

[复制链接]
发表于 2025-2-8 21:41:34 | 显示全部楼层 |阅读模式
各位可能 苦恼于 一些FC 2视频名称只有编号,只看标题不知道视频具体内容,我写了一个脚本,可以批量将FC2-PPV-XXX 格式的视频文件进行自动化获取原名称  W' W/ G# f( A2 I6 R6 @(欢迎访问老王论坛:laowang.vip)
具体代码如下:8 j* k6 N+ |9 i4 D, F(欢迎访问老王论坛:laowang.vip)
1. 输入待改名目录
: ~) ^. v2 U* F0 Y2 e2. 遍历文件2 C+ o8 H# `7 Q& F/ v+ g- Q# v+ o(欢迎访问老王论坛:laowang.vip)
3. 获取编号
, Y9 R, e1 L  k. }0 R9 p4    根据编号抓取FC2DB的信息并将文件改名7 k$ D5 W; [0 z5 F1 f( g(欢迎访问老王论坛:laowang.vip)

+ K5 }$ L+ Z* p5 E8 B
5 n* H2 t8 q; [! S: y各位可以试试,有问题可以回复
( j* V1 @( e5 X% f: a
) {7 ?2 G! s8 m- }5 `20250207 : 改为使用代码框20250208 : 应该是发错板块了 改为发到这里% e. T+ [. B( E  i4 a(欢迎访问老王论坛:laowang.vip)

2 l8 V, y3 Y/ c. z8 D8 [. D/ i效果如图
5 Z6 F! S# l0 _
5 R+ Z% k0 r' c9 t, _/ Z) N9 F9 N, r1 O5 [4 K% K7 ^' E% i(欢迎访问老王论坛:laowang.vip)
  1. import requests
    # h! E1 v$ ^! b  X
  2. import re
    ; w, V6 i. t0 Y) M, t: Q5 B' t
  3. import os
    , c# y  w1 {6 M( x1 t# _6 A, _
  4. 9 t0 d' B# W$ U7 \(欢迎访问老王论坛:laowang.vip)
  5. from bs4 import BeautifulSoup! i$ x+ b! Y# Q6 g1 z(欢迎访问老王论坛:laowang.vip)

  6. 9 k8 @- e. I% _7 x2 ~% _
  7. ; I- Y9 G# x( Z' K(欢迎访问老王论坛:laowang.vip)

  8. 9 |6 U$ J# G2 ?# m5 R
  9. #配置代理 自己的端口 不配可以删掉' t! X1 ^4 z& E(欢迎访问老王论坛:laowang.vip)
  10. proxies = {
    0 w7 x$ k% v1 |: ^' x
  11.     "http": "hhttp://127.0.0.1:33210",
    0 X2 K. C3 j$ [, a. O. S8 E( \+ ~
  12.     "https": "http://127.0.0.1:33210",
    1 U. ?" O+ _* i. G  n7 {
  13. }+ v& R, n, D' r* e6 s4 [# i+ ](欢迎访问老王论坛:laowang.vip)

  14.   J: k" M+ B1 _, i, s; |
  15. . j) v: ^: N# O1 p* L# N(欢迎访问老王论坛:laowang.vip)
  16. : {/ Q9 G2 O6 v1 m/ X) y  B/ Z(欢迎访问老王论坛:laowang.vip)
  17. # 抓取文章名字的函数$ ^4 ]$ H6 C5 U2 f5 M5 M) ~(欢迎访问老王论坛:laowang.vip)
  18. def get_article_title(article_id):/ ]; C& Y) Y4 A* f* t(欢迎访问老王论坛:laowang.vip)
  19.     url = f"https://fc2ppvdb.com/articles/{article_id}"
    ' G0 {* a5 `0 Z+ U& a9 }# j$ A& H
  20.     try:
    + a$ j7 H, J0 R" _" p, `; s6 ?
  21.         response = requests.get(url, timeout=10, proxies=proxies)  # 设置超时时间  不配代理删掉proxies
    # k+ ?5 C  k7 H% Z- `. g/ f4 w
  22.         if response.status_code == 200:1 H( ^7 ^8 r( \6 z; k+ i(欢迎访问老王论坛:laowang.vip)
  23.             soup = BeautifulSoup(response.text, 'html.parser')
    , ^  k9 Q1 j, w& A8 B1 T! m  R7 l
  24.             title_tag = soup.find('title')# M* r" X8 s7 b(欢迎访问老王论坛:laowang.vip)
  25.             if title_tag:
      q/ V' {1 E3 [7 ]- Y) x5 [0 R
  26.                 return title_tag.text.strip()
    4 i3 S3 F0 @: R6 a/ ~3 D: s
  27.             else:
    . d5 Q4 a7 X+ T+ w! K& u
  28.                 return None
    % ^+ G( Q. G$ n0 j/ p) c
  29.         else:& E# C( X) ~1 v. }% `# Y+ E(欢迎访问老王论坛:laowang.vip)
  30.             print(f"抓取失败,状态码: {response.status_code}")
    5 L, L* |6 e* c  `
  31.             return None
    1 k" K3 F1 P$ \3 J
  32.     except Exception as e:
    ; q$ D: l; r4 \) G7 ~  }
  33.         print(f"抓取文章名字时出错: {e}")
    3 y6 g0 `+ D; x7 T" V4 Q' ]
  34.         return None
    4 t7 z2 W7 ^  r4 E$ M+ V- x) x" s
  35. / x; S4 O1 D/ r$ Q, T  t. N- i(欢迎访问老王论坛:laowang.vip)
  36. # 重命名文件的函数; a) [  Z: k& n6 |) U* C/ P(欢迎访问老王论坛:laowang.vip)
  37. def rename_files_in_directory(directory):( L# \( D; h" }. f(欢迎访问老王论坛:laowang.vip)
  38.     # 遍历目录及其子目录: Y# r/ _8 t5 D: j6 z(欢迎访问老王论坛:laowang.vip)
  39.     for root, dirs, files in os.walk(directory):# b. I% }; j) w7 G(欢迎访问老王论坛:laowang.vip)
  40.         for file in files:1 f3 P, u6 C4 }9 q& V. }(欢迎访问老王论坛:laowang.vip)
  41.             # 检查文件名是否包含“FC2”
    9 u5 Y+ v' E7 ^& m. M
  42.             if "FC2" in file:" y6 u- ~6 e& ?1 c% m& B(欢迎访问老王论坛:laowang.vip)
  43.                 # 使用正则表达式提取文章编号
    0 r7 e4 q0 w6 t# n+ V6 w& l
  44.                 match = re.search(r'\d{6,7}', file)
    5 `7 L  m) ~  f7 Z
  45.                 if match:/ ]8 r1 L% G0 G. h7 u& ?, C(欢迎访问老王论坛:laowang.vip)
  46.                     article_id = match.group(0)
    1 ^, L- C/ T* d0 t3 A
  47.                     print(f"找到文件: {file}, 文章编号: {article_id}")  B; o! I' N: O: U& I8 K(欢迎访问老王论坛:laowang.vip)
  48. 0 F4 G+ M. n/ g(欢迎访问老王论坛:laowang.vip)
  49.                     # 抓取文章名字
    4 }: \' }) g/ C# p
  50.                     article_title = get_article_title(article_id)* Y2 m' J1 n7 I2 U(欢迎访问老王论坛:laowang.vip)
  51.                     if article_title:
    $ a& d* r  e/ ~4 o
  52.                         # 清理文章名字中的非法字符
    ' p+ e6 U, ?6 G
  53.                         article_title = re.sub(r'[<>:"/\\|?*]', '', article_title)  # 去除非法字符
    ! \7 N; Z4 u% {: A- n0 G
  54.                         article_title = article_title.strip()  # 去除前后空格8 j7 _6 w0 ]9 \5 {. a& P(欢迎访问老王论坛:laowang.vip)

  55. 9 @- ^- G6 ~& ]9 u
  56.                         # 构建新文件名: A1 a1 a+ k: z( K! y(欢迎访问老王论坛:laowang.vip)
  57.                         file_extension = os.path.splitext(file)[1]  # 保留原文件扩展名: ?9 C) |& X/ n5 |(欢迎访问老王论坛:laowang.vip)
  58.                         new_filename = f"{article_title}{file_extension}"6 g4 ]( z) |5 |' [! L7 y(欢迎访问老王论坛:laowang.vip)
  59. 3 b7 \6 I3 G$ ?# u% n+ [(欢迎访问老王论坛:laowang.vip)
  60.                         # 构建完整路径7 I. C* m' G; \/ }(欢迎访问老王论坛:laowang.vip)
  61.                         old_path = os.path.join(root, file)
    0 U, N/ h8 e) c7 Q! \, R3 ?& L: e3 k
  62.                         new_path = os.path.join(root, new_filename)
    - v  p6 L1 h& m1 s' ^  ~) H
  63. 6 R% }  O$ R  @0 F$ T7 m5 l5 h' c  p(欢迎访问老王论坛:laowang.vip)
  64.                         # 重命名文件
    * X! a2 R2 e$ O. C" s$ E
  65.                         try:
    / @: x( w. L4 o& U' z* L
  66.                             os.rename(old_path, new_path)
    * N/ e' l  @/ g7 {) V
  67.                             print(f"重命名成功: {file} -> {new_filename}")3 b  \( J) _/ Y& ?- P7 {% U(欢迎访问老王论坛:laowang.vip)
  68.                         except Exception as e:' [6 ~/ R0 f+ m' g! T% }* `! O2 V(欢迎访问老王论坛:laowang.vip)
  69.                             print(f"重命名失败: {e}")
    0 h9 |  ?/ H$ J9 ^
  70.                     else:
      k" _  j2 X9 {5 _3 E
  71.                         print(f"未找到文章编号 {article_id} 对应的文章名字")/ T( F- o7 _; {% g' h(欢迎访问老王论坛:laowang.vip)
  72.                 else:
    " I8 p" x* k" W3 {4 O7 V& R
  73.                     print(f"文件 {file} 不符合命名规则,跳过")" y3 h$ ?6 d( v/ B% M  x(欢迎访问老王论坛:laowang.vip)

  74. * }/ V& Q! C; w3 z0 M1 D  I
  75. # 主程序4 t, k" i% [+ X& X0 f! r(欢迎访问老王论坛:laowang.vip)
  76. if __name__ == "__main__":
    1 o$ z; d6 w! x' R! {1 Z
  77.     # 让用户输入待处理的目录$ A& Z/ I7 ~2 {(欢迎访问老王论坛:laowang.vip)
  78.     directory = input("请输入待处理的目录路径: ").strip()
    5 J8 R9 g/ O: z/ b$ }% b  F/ N

  79. 2 }& H. |1 ?! R# O
  80.     # 检查目录是否存在
    ! j2 c, p  I& r5 q+ @1 T
  81.     if os.path.exists(directory):
    - j) z2 u2 H$ _0 a
  82.         rename_files_in_directory(directory)4 F* z$ e+ l5 P7 ^(欢迎访问老王论坛:laowang.vip)
  83.     else:6 e/ e0 C, Y9 h(欢迎访问老王论坛:laowang.vip)
  84.         print(f"目录 {directory} 不存在,请检查路径。")
复制代码

  P' |0 X" f8 \# W( P: R  K; a; q( |
# W) V8 `$ f+ {7 Q# U* h+ O0 i9 h(欢迎访问老王论坛:laowang.vip)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?免费注册

x
回复

使用道具 举报

发表于 2025-2-9 12:04:33 | 显示全部楼层
你没解决文件名过长的问题
回复 支持 反对

使用道具 举报

发表于 2025-2-9 17:44:44 手机版 | 显示全部楼层
没学过的表示真的看不懂,哥能整个bat运行文件吗
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 免费注册
点击进行验证

本版积分规则

我们不生产资源,只做资源的搬运工。

app下载-tags标签-春满四合院-AvGood-Archiver-小黑屋- |网站地图