各位可能 苦恼于 一些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)
- import requests
# h! E1 v$ ^! b X - import re
; w, V6 i. t0 Y) M, t: Q5 B' t - import os
, c# y w1 {6 M( x1 t# _6 A, _ - 9 t0 d' B# W$ U7 \(欢迎访问老王论坛:laowang.vip)
- from bs4 import BeautifulSoup! i$ x+ b! Y# Q6 g1 z(欢迎访问老王论坛:laowang.vip)
9 k8 @- e. I% _7 x2 ~% _- ; I- Y9 G# x( Z' K(欢迎访问老王论坛:laowang.vip)
9 |6 U$ J# G2 ?# m5 R- #配置代理 自己的端口 不配可以删掉' t! X1 ^4 z& E(欢迎访问老王论坛:laowang.vip)
- proxies = {
0 w7 x$ k% v1 |: ^' x - "http": "hhttp://127.0.0.1:33210",
0 X2 K. C3 j$ [, a. O. S8 E( \+ ~ - "https": "http://127.0.0.1:33210",
1 U. ?" O+ _* i. G n7 { - }+ v& R, n, D' r* e6 s4 [# i+ ](欢迎访问老王论坛:laowang.vip)
J: k" M+ B1 _, i, s; |- . j) v: ^: N# O1 p* L# N(欢迎访问老王论坛:laowang.vip)
- : {/ Q9 G2 O6 v1 m/ X) y B/ Z(欢迎访问老王论坛:laowang.vip)
- # 抓取文章名字的函数$ ^4 ]$ H6 C5 U2 f5 M5 M) ~(欢迎访问老王论坛:laowang.vip)
- def get_article_title(article_id):/ ]; C& Y) Y4 A* f* t(欢迎访问老王论坛:laowang.vip)
- url = f"https://fc2ppvdb.com/articles/{article_id}"
' G0 {* a5 `0 Z+ U& a9 }# j$ A& H - try:
+ a$ j7 H, J0 R" _" p, `; s6 ? - response = requests.get(url, timeout=10, proxies=proxies) # 设置超时时间 不配代理删掉proxies
# k+ ?5 C k7 H% Z- `. g/ f4 w - if response.status_code == 200:1 H( ^7 ^8 r( \6 z; k+ i(欢迎访问老王论坛:laowang.vip)
- soup = BeautifulSoup(response.text, 'html.parser')
, ^ k9 Q1 j, w& A8 B1 T! m R7 l - title_tag = soup.find('title')# M* r" X8 s7 b(欢迎访问老王论坛:laowang.vip)
- if title_tag:
q/ V' {1 E3 [7 ]- Y) x5 [0 R - return title_tag.text.strip()
4 i3 S3 F0 @: R6 a/ ~3 D: s - else:
. d5 Q4 a7 X+ T+ w! K& u - return None
% ^+ G( Q. G$ n0 j/ p) c - else:& E# C( X) ~1 v. }% `# Y+ E(欢迎访问老王论坛:laowang.vip)
- print(f"抓取失败,状态码: {response.status_code}")
5 L, L* |6 e* c ` - return None
1 k" K3 F1 P$ \3 J - except Exception as e:
; q$ D: l; r4 \) G7 ~ } - print(f"抓取文章名字时出错: {e}")
3 y6 g0 `+ D; x7 T" V4 Q' ] - return None
4 t7 z2 W7 ^ r4 E$ M+ V- x) x" s - / x; S4 O1 D/ r$ Q, T t. N- i(欢迎访问老王论坛:laowang.vip)
- # 重命名文件的函数; a) [ Z: k& n6 |) U* C/ P(欢迎访问老王论坛:laowang.vip)
- def rename_files_in_directory(directory):( L# \( D; h" }. f(欢迎访问老王论坛:laowang.vip)
- # 遍历目录及其子目录: Y# r/ _8 t5 D: j6 z(欢迎访问老王论坛:laowang.vip)
- for root, dirs, files in os.walk(directory):# b. I% }; j) w7 G(欢迎访问老王论坛:laowang.vip)
- for file in files:1 f3 P, u6 C4 }9 q& V. }(欢迎访问老王论坛:laowang.vip)
- # 检查文件名是否包含“FC2”
9 u5 Y+ v' E7 ^& m. M - if "FC2" in file:" y6 u- ~6 e& ?1 c% m& B(欢迎访问老王论坛:laowang.vip)
- # 使用正则表达式提取文章编号
0 r7 e4 q0 w6 t# n+ V6 w& l - match = re.search(r'\d{6,7}', file)
5 `7 L m) ~ f7 Z - if match:/ ]8 r1 L% G0 G. h7 u& ?, C(欢迎访问老王论坛:laowang.vip)
- article_id = match.group(0)
1 ^, L- C/ T* d0 t3 A - print(f"找到文件: {file}, 文章编号: {article_id}") B; o! I' N: O: U& I8 K(欢迎访问老王论坛:laowang.vip)
- 0 F4 G+ M. n/ g(欢迎访问老王论坛:laowang.vip)
- # 抓取文章名字
4 }: \' }) g/ C# p - article_title = get_article_title(article_id)* Y2 m' J1 n7 I2 U(欢迎访问老王论坛:laowang.vip)
- if article_title:
$ a& d* r e/ ~4 o - # 清理文章名字中的非法字符
' p+ e6 U, ?6 G - article_title = re.sub(r'[<>:"/\\|?*]', '', article_title) # 去除非法字符
! \7 N; Z4 u% {: A- n0 G - article_title = article_title.strip() # 去除前后空格8 j7 _6 w0 ]9 \5 {. a& P(欢迎访问老王论坛:laowang.vip)
9 @- ^- G6 ~& ]9 u- # 构建新文件名: A1 a1 a+ k: z( K! y(欢迎访问老王论坛:laowang.vip)
- file_extension = os.path.splitext(file)[1] # 保留原文件扩展名: ?9 C) |& X/ n5 |(欢迎访问老王论坛:laowang.vip)
- new_filename = f"{article_title}{file_extension}"6 g4 ]( z) |5 |' [! L7 y(欢迎访问老王论坛:laowang.vip)
- 3 b7 \6 I3 G$ ?# u% n+ [(欢迎访问老王论坛:laowang.vip)
- # 构建完整路径7 I. C* m' G; \/ }(欢迎访问老王论坛:laowang.vip)
- old_path = os.path.join(root, file)
0 U, N/ h8 e) c7 Q! \, R3 ?& L: e3 k - new_path = os.path.join(root, new_filename)
- v p6 L1 h& m1 s' ^ ~) H - 6 R% } O$ R @0 F$ T7 m5 l5 h' c p(欢迎访问老王论坛:laowang.vip)
- # 重命名文件
* X! a2 R2 e$ O. C" s$ E - try:
/ @: x( w. L4 o& U' z* L - os.rename(old_path, new_path)
* N/ e' l @/ g7 {) V - print(f"重命名成功: {file} -> {new_filename}")3 b \( J) _/ Y& ?- P7 {% U(欢迎访问老王论坛:laowang.vip)
- except Exception as e:' [6 ~/ R0 f+ m' g! T% }* `! O2 V(欢迎访问老王论坛:laowang.vip)
- print(f"重命名失败: {e}")
0 h9 | ?/ H$ J9 ^ - else:
k" _ j2 X9 {5 _3 E - print(f"未找到文章编号 {article_id} 对应的文章名字")/ T( F- o7 _; {% g' h(欢迎访问老王论坛:laowang.vip)
- else:
" I8 p" x* k" W3 {4 O7 V& R - print(f"文件 {file} 不符合命名规则,跳过")" y3 h$ ?6 d( v/ B% M x(欢迎访问老王论坛:laowang.vip)
* }/ V& Q! C; w3 z0 M1 D I- # 主程序4 t, k" i% [+ X& X0 f! r(欢迎访问老王论坛:laowang.vip)
- if __name__ == "__main__":
1 o$ z; d6 w! x' R! {1 Z - # 让用户输入待处理的目录$ A& Z/ I7 ~2 {(欢迎访问老王论坛:laowang.vip)
- directory = input("请输入待处理的目录路径: ").strip()
5 J8 R9 g/ O: z/ b$ }% b F/ N
2 }& H. |1 ?! R# O- # 检查目录是否存在
! j2 c, p I& r5 q+ @1 T - if os.path.exists(directory):
- j) z2 u2 H$ _0 a - rename_files_in_directory(directory)4 F* z$ e+ l5 P7 ^(欢迎访问老王论坛:laowang.vip)
- else:6 e/ e0 C, Y9 h(欢迎访问老王论坛:laowang.vip)
- 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)
|