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

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

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

[复制链接]
发表于 2025-2-8 21:41:34 | 显示全部楼层 |阅读模式
各位可能 苦恼于 一些FC 2视频名称只有编号,只看标题不知道视频具体内容,我写了一个脚本,可以批量将FC2-PPV-XXX 格式的视频文件进行自动化获取原名称
: Z( r- ^0 q& o2 W. h7 u$ S0 B具体代码如下:: ^* p) W) g$ ]- P9 L(欢迎访问老王论坛:laowang.vip)
1. 输入待改名目录: D/ ]' l6 Q& Q$ F6 t# }; W(欢迎访问老王论坛:laowang.vip)
2. 遍历文件
( `* m& Y  q9 x, ^" \6 U9 n3. 获取编号# i5 a/ H  E7 K6 Q$ v(欢迎访问老王论坛:laowang.vip)
4    根据编号抓取FC2DB的信息并将文件改名. [& z8 s6 r  w! m* E0 i: o) e8 y(欢迎访问老王论坛:laowang.vip)

  |/ c' _* Q, Z! `
/ b: b- O! B8 U4 R) e! N各位可以试试,有问题可以回复; h" q, s. G. \( k/ f5 t4 m(欢迎访问老王论坛:laowang.vip)

+ W) ?% ?: E" K! d20250207 : 改为使用代码框20250208 : 应该是发错板块了 改为发到这里6 i- m0 b) F5 q$ `9 \- p(欢迎访问老王论坛:laowang.vip)

4 D& w; ~: n' `/ d* P* J* C效果如图
; V- x) T3 ?  \8 Z- z3 g3 d+ E# ^6 R& r; W(欢迎访问老王论坛:laowang.vip)
2 j* Z' A1 g8 M(欢迎访问老王论坛:laowang.vip)
  1. import requests
    " V& M/ r2 Y: D
  2. import re
    ; G& J9 b1 F8 {; q* `$ ~* e
  3. import os( k2 }7 T; _! \( ~- F6 ?2 g7 }(欢迎访问老王论坛:laowang.vip)

  4. 4 `$ t- r9 L# Z# g' L* Y; Y
  5. from bs4 import BeautifulSoup
    . r  T, p' _, M4 t
  6. 0 x* M$ o; h% [2 L3 G4 R(欢迎访问老王论坛:laowang.vip)
  7. % u/ ?% i$ d$ i(欢迎访问老王论坛:laowang.vip)

  8. / ]3 a6 O! z6 l" }1 i+ n# k
  9. #配置代理 自己的端口 不配可以删掉
    % J' @+ _. e3 w9 z2 a
  10. proxies = {
    , _* c3 c$ R; y  p7 m1 m) I
  11.     "http": "hhttp://127.0.0.1:33210",
    , {6 R! z4 N/ P2 b1 s8 y
  12.     "https": "http://127.0.0.1:33210",: b+ ], g  K3 ^(欢迎访问老王论坛:laowang.vip)
  13. }" d( l) I: K" `(欢迎访问老王论坛:laowang.vip)

  14. $ ^) B) z2 C* C& O! {5 M, P
  15. 6 ^, a8 b2 }& a0 D8 {% x) t; r(欢迎访问老王论坛:laowang.vip)

  16. 5 O6 N: c6 ^, @" {1 x
  17. # 抓取文章名字的函数
    % E. [+ g; a1 k0 Q( e3 b
  18. def get_article_title(article_id):- q' H( O9 C5 Y3 e; c$ r(欢迎访问老王论坛:laowang.vip)
  19.     url = f"https://fc2ppvdb.com/articles/{article_id}"2 P; E+ `, w3 L(欢迎访问老王论坛:laowang.vip)
  20.     try:
    $ e6 i. _6 h8 S3 }% `
  21.         response = requests.get(url, timeout=10, proxies=proxies)  # 设置超时时间  不配代理删掉proxies
    ; z5 O& T" i+ x# L3 Q& L
  22.         if response.status_code == 200:% H* i' |4 s" S- T* e# S(欢迎访问老王论坛:laowang.vip)
  23.             soup = BeautifulSoup(response.text, 'html.parser')
    # b! R5 f0 M* `" g# Z; X
  24.             title_tag = soup.find('title')
    6 `1 v, ]+ x6 [6 [* D# x- [3 \
  25.             if title_tag:0 L& |( C% U0 U1 i) \* f2 Y(欢迎访问老王论坛:laowang.vip)
  26.                 return title_tag.text.strip()
    6 _4 }0 G$ o, S$ X1 Q+ e' I
  27.             else:
    # V2 [9 q1 ?# X& y! ]# S
  28.                 return None
    ! ^3 _/ w4 w2 X# Y( v/ @, W
  29.         else:
    / y2 r' O9 e9 x# k, `
  30.             print(f"抓取失败,状态码: {response.status_code}"): r+ a  P5 ~7 q7 D% p  M(欢迎访问老王论坛:laowang.vip)
  31.             return None
    - a- H0 k9 `! c1 ?5 b  B& ?" H  @0 ?
  32.     except Exception as e:
    * |7 \: n& ^  `) P& I* z) d( A
  33.         print(f"抓取文章名字时出错: {e}")
    - {8 j% J' Z+ M
  34.         return None
      D. L  u* M6 G- `3 J: S# @
  35. " W4 Q4 C+ h, n+ u' G" p, ]- _* K(欢迎访问老王论坛:laowang.vip)
  36. # 重命名文件的函数
    # b# f$ P! S4 s
  37. def rename_files_in_directory(directory):* O4 y; n' S' i: u/ `! L(欢迎访问老王论坛:laowang.vip)
  38.     # 遍历目录及其子目录& v5 u; q7 g; ?, f0 |/ q(欢迎访问老王论坛:laowang.vip)
  39.     for root, dirs, files in os.walk(directory):3 v. M" M% p8 w! @6 x9 _! l6 i(欢迎访问老王论坛:laowang.vip)
  40.         for file in files:7 \9 |- G$ A* c+ j4 W(欢迎访问老王论坛:laowang.vip)
  41.             # 检查文件名是否包含“FC2”/ r; A  M2 m; M! X- a$ M& ](欢迎访问老王论坛:laowang.vip)
  42.             if "FC2" in file:& N5 @) ?" Y0 J9 x1 t(欢迎访问老王论坛:laowang.vip)
  43.                 # 使用正则表达式提取文章编号* a) q4 ^4 K2 R$ z5 A(欢迎访问老王论坛:laowang.vip)
  44.                 match = re.search(r'\d{6,7}', file)3 e2 v3 i' t" j(欢迎访问老王论坛:laowang.vip)
  45.                 if match:
    6 k  H; W7 F. u! S7 I! ]; W
  46.                     article_id = match.group(0)
    $ I7 _8 |8 B$ o2 V0 [6 x
  47.                     print(f"找到文件: {file}, 文章编号: {article_id}")
    6 W7 n2 {  D1 C5 J- s

  48. 6 f6 t8 G% P; `% F! @. ^, D
  49.                     # 抓取文章名字
    " Q9 ]' C* F7 }
  50.                     article_title = get_article_title(article_id)
    6 {% I; F3 p4 w" P$ \7 B* B
  51.                     if article_title:" e7 I8 ]: v: x  x* m) N- J/ u(欢迎访问老王论坛:laowang.vip)
  52.                         # 清理文章名字中的非法字符* \. c% P3 o2 n; {* g" X; N(欢迎访问老王论坛:laowang.vip)
  53.                         article_title = re.sub(r'[<>:"/\\|?*]', '', article_title)  # 去除非法字符& _% b$ ^, }  h+ Q8 g(欢迎访问老王论坛:laowang.vip)
  54.                         article_title = article_title.strip()  # 去除前后空格$ U& z; g* X* c' _9 n- C$ U/ j(欢迎访问老王论坛:laowang.vip)
  55.   ]: N9 f7 [$ y4 C" _( N. I$ g(欢迎访问老王论坛:laowang.vip)
  56.                         # 构建新文件名, d# y; P6 }! e. `(欢迎访问老王论坛:laowang.vip)
  57.                         file_extension = os.path.splitext(file)[1]  # 保留原文件扩展名
    & z% i+ Q( D7 b2 \
  58.                         new_filename = f"{article_title}{file_extension}"* F: Z1 Y# Y. J3 E4 ~(欢迎访问老王论坛:laowang.vip)
  59. . U# g' o5 k/ t: U2 _2 `(欢迎访问老王论坛:laowang.vip)
  60.                         # 构建完整路径
    % ~' Z2 C9 V6 B$ z# r- O% l. f
  61.                         old_path = os.path.join(root, file)
    - M% f. W' z! T5 x$ ^7 Q% x0 Z
  62.                         new_path = os.path.join(root, new_filename)
    ' @% v6 m6 d7 u: N5 a4 p3 M' }
  63. 6 h  N0 Q/ R5 N5 g2 E0 ?; g(欢迎访问老王论坛:laowang.vip)
  64.                         # 重命名文件
    # v0 @! `  |% I& B" Y
  65.                         try:
    / a8 H, J  B2 p. F) W
  66.                             os.rename(old_path, new_path)- D: w# g0 B8 O' f4 L5 m5 I8 _. c(欢迎访问老王论坛:laowang.vip)
  67.                             print(f"重命名成功: {file} -> {new_filename}")+ w- B2 ?* v# T/ V  ?(欢迎访问老王论坛:laowang.vip)
  68.                         except Exception as e:. w( i! S5 l( ]7 z  v4 ^, \+ r4 ](欢迎访问老王论坛:laowang.vip)
  69.                             print(f"重命名失败: {e}")
    ) V0 F0 B" b8 m( G
  70.                     else:
    ! P# n- h1 X$ q9 d" _
  71.                         print(f"未找到文章编号 {article_id} 对应的文章名字")! e' K7 N( x! m+ _7 c(欢迎访问老王论坛:laowang.vip)
  72.                 else:
    5 u' s2 f* E  H" f) U( T+ w
  73.                     print(f"文件 {file} 不符合命名规则,跳过")1 [/ d- l9 q& u3 F, m1 z( h& O5 j+ e(欢迎访问老王论坛:laowang.vip)

  74. " v4 T$ b. w( H3 J; a1 H' a4 e  h* [
  75. # 主程序7 x. \- Y1 K# u$ b(欢迎访问老王论坛:laowang.vip)
  76. if __name__ == "__main__":  o/ r) s- T. ?2 ?(欢迎访问老王论坛:laowang.vip)
  77.     # 让用户输入待处理的目录
      m) e# \7 O, A3 n) V8 D
  78.     directory = input("请输入待处理的目录路径: ").strip()
    ; Q) c* r0 `; f3 R/ a. b( W

  79. # L2 w; I" m4 y3 R) q" J8 D
  80.     # 检查目录是否存在" O! S4 \1 `8 n7 P  S; Q(欢迎访问老王论坛:laowang.vip)
  81.     if os.path.exists(directory):+ p9 w2 {& _$ }(欢迎访问老王论坛:laowang.vip)
  82.         rename_files_in_directory(directory): i* g, b" l  s) {  S(欢迎访问老王论坛:laowang.vip)
  83.     else:* @2 K* r- [& k" r" N(欢迎访问老王论坛:laowang.vip)
  84.         print(f"目录 {directory} 不存在,请检查路径。")
复制代码

1 i. N6 _- @" g7 e, J- M. `
; [" W( h# d. u& L1 {+ x0 f
! f* A4 Z4 w) h6 g

本帖子中包含更多资源

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

x
回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

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