各位可能 苦恼于 一些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)
- import requests
" V& M/ r2 Y: D - import re
; G& J9 b1 F8 {; q* `$ ~* e - import os( k2 }7 T; _! \( ~- F6 ?2 g7 }(欢迎访问老王论坛:laowang.vip)
4 `$ t- r9 L# Z# g' L* Y; Y- from bs4 import BeautifulSoup
. r T, p' _, M4 t - 0 x* M$ o; h% [2 L3 G4 R(欢迎访问老王论坛:laowang.vip)
- % u/ ?% i$ d$ i(欢迎访问老王论坛:laowang.vip)
/ ]3 a6 O! z6 l" }1 i+ n# k- #配置代理 自己的端口 不配可以删掉
% J' @+ _. e3 w9 z2 a - proxies = {
, _* c3 c$ R; y p7 m1 m) I - "http": "hhttp://127.0.0.1:33210",
, {6 R! z4 N/ P2 b1 s8 y - "https": "http://127.0.0.1:33210",: b+ ], g K3 ^(欢迎访问老王论坛:laowang.vip)
- }" d( l) I: K" `(欢迎访问老王论坛:laowang.vip)
$ ^) B) z2 C* C& O! {5 M, P- 6 ^, a8 b2 }& a0 D8 {% x) t; r(欢迎访问老王论坛:laowang.vip)
5 O6 N: c6 ^, @" {1 x- # 抓取文章名字的函数
% E. [+ g; a1 k0 Q( e3 b - def get_article_title(article_id):- q' H( O9 C5 Y3 e; c$ r(欢迎访问老王论坛:laowang.vip)
- url = f"https://fc2ppvdb.com/articles/{article_id}"2 P; E+ `, w3 L(欢迎访问老王论坛:laowang.vip)
- try:
$ e6 i. _6 h8 S3 }% ` - response = requests.get(url, timeout=10, proxies=proxies) # 设置超时时间 不配代理删掉proxies
; z5 O& T" i+ x# L3 Q& L - if response.status_code == 200:% H* i' |4 s" S- T* e# S(欢迎访问老王论坛:laowang.vip)
- soup = BeautifulSoup(response.text, 'html.parser')
# b! R5 f0 M* `" g# Z; X - title_tag = soup.find('title')
6 `1 v, ]+ x6 [6 [* D# x- [3 \ - if title_tag:0 L& |( C% U0 U1 i) \* f2 Y(欢迎访问老王论坛:laowang.vip)
- return title_tag.text.strip()
6 _4 }0 G$ o, S$ X1 Q+ e' I - else:
# V2 [9 q1 ?# X& y! ]# S - return None
! ^3 _/ w4 w2 X# Y( v/ @, W - else:
/ y2 r' O9 e9 x# k, ` - print(f"抓取失败,状态码: {response.status_code}"): r+ a P5 ~7 q7 D% p M(欢迎访问老王论坛:laowang.vip)
- return None
- a- H0 k9 `! c1 ?5 b B& ?" H @0 ? - except Exception as e:
* |7 \: n& ^ `) P& I* z) d( A - print(f"抓取文章名字时出错: {e}")
- {8 j% J' Z+ M - return None
D. L u* M6 G- `3 J: S# @ - " W4 Q4 C+ h, n+ u' G" p, ]- _* K(欢迎访问老王论坛:laowang.vip)
- # 重命名文件的函数
# b# f$ P! S4 s - def rename_files_in_directory(directory):* O4 y; n' S' i: u/ `! L(欢迎访问老王论坛:laowang.vip)
- # 遍历目录及其子目录& v5 u; q7 g; ?, f0 |/ q(欢迎访问老王论坛:laowang.vip)
- for root, dirs, files in os.walk(directory):3 v. M" M% p8 w! @6 x9 _! l6 i(欢迎访问老王论坛:laowang.vip)
- for file in files:7 \9 |- G$ A* c+ j4 W(欢迎访问老王论坛:laowang.vip)
- # 检查文件名是否包含“FC2”/ r; A M2 m; M! X- a$ M& ](欢迎访问老王论坛:laowang.vip)
- if "FC2" in file:& N5 @) ?" Y0 J9 x1 t(欢迎访问老王论坛:laowang.vip)
- # 使用正则表达式提取文章编号* a) q4 ^4 K2 R$ z5 A(欢迎访问老王论坛:laowang.vip)
- match = re.search(r'\d{6,7}', file)3 e2 v3 i' t" j(欢迎访问老王论坛:laowang.vip)
- if match:
6 k H; W7 F. u! S7 I! ]; W - article_id = match.group(0)
$ I7 _8 |8 B$ o2 V0 [6 x - print(f"找到文件: {file}, 文章编号: {article_id}")
6 W7 n2 { D1 C5 J- s
6 f6 t8 G% P; `% F! @. ^, D- # 抓取文章名字
" Q9 ]' C* F7 } - article_title = get_article_title(article_id)
6 {% I; F3 p4 w" P$ \7 B* B - if article_title:" e7 I8 ]: v: x x* m) N- J/ u(欢迎访问老王论坛:laowang.vip)
- # 清理文章名字中的非法字符* \. c% P3 o2 n; {* g" X; N(欢迎访问老王论坛:laowang.vip)
- article_title = re.sub(r'[<>:"/\\|?*]', '', article_title) # 去除非法字符& _% b$ ^, } h+ Q8 g(欢迎访问老王论坛:laowang.vip)
- article_title = article_title.strip() # 去除前后空格$ U& z; g* X* c' _9 n- C$ U/ j(欢迎访问老王论坛:laowang.vip)
- ]: N9 f7 [$ y4 C" _( N. I$ g(欢迎访问老王论坛:laowang.vip)
- # 构建新文件名, d# y; P6 }! e. `(欢迎访问老王论坛:laowang.vip)
- file_extension = os.path.splitext(file)[1] # 保留原文件扩展名
& z% i+ Q( D7 b2 \ - new_filename = f"{article_title}{file_extension}"* F: Z1 Y# Y. J3 E4 ~(欢迎访问老王论坛:laowang.vip)
- . U# g' o5 k/ t: U2 _2 `(欢迎访问老王论坛:laowang.vip)
- # 构建完整路径
% ~' Z2 C9 V6 B$ z# r- O% l. f - old_path = os.path.join(root, file)
- M% f. W' z! T5 x$ ^7 Q% x0 Z - new_path = os.path.join(root, new_filename)
' @% v6 m6 d7 u: N5 a4 p3 M' } - 6 h N0 Q/ R5 N5 g2 E0 ?; g(欢迎访问老王论坛:laowang.vip)
- # 重命名文件
# v0 @! ` |% I& B" Y - try:
/ a8 H, J B2 p. F) W - os.rename(old_path, new_path)- D: w# g0 B8 O' f4 L5 m5 I8 _. c(欢迎访问老王论坛:laowang.vip)
- print(f"重命名成功: {file} -> {new_filename}")+ w- B2 ?* v# T/ V ?(欢迎访问老王论坛:laowang.vip)
- except Exception as e:. w( i! S5 l( ]7 z v4 ^, \+ r4 ](欢迎访问老王论坛:laowang.vip)
- print(f"重命名失败: {e}")
) V0 F0 B" b8 m( G - else:
! P# n- h1 X$ q9 d" _ - print(f"未找到文章编号 {article_id} 对应的文章名字")! e' K7 N( x! m+ _7 c(欢迎访问老王论坛:laowang.vip)
- else:
5 u' s2 f* E H" f) U( T+ w - print(f"文件 {file} 不符合命名规则,跳过")1 [/ d- l9 q& u3 F, m1 z( h& O5 j+ e(欢迎访问老王论坛:laowang.vip)
" v4 T$ b. w( H3 J; a1 H' a4 e h* [- # 主程序7 x. \- Y1 K# u$ b(欢迎访问老王论坛:laowang.vip)
- if __name__ == "__main__": o/ r) s- T. ?2 ?(欢迎访问老王论坛:laowang.vip)
- # 让用户输入待处理的目录
m) e# \7 O, A3 n) V8 D - directory = input("请输入待处理的目录路径: ").strip()
; Q) c* r0 `; f3 R/ a. b( W
# L2 w; I" m4 y3 R) q" J8 D- # 检查目录是否存在" O! S4 \1 `8 n7 P S; Q(欢迎访问老王论坛:laowang.vip)
- if os.path.exists(directory):+ p9 w2 {& _$ }(欢迎访问老王论坛:laowang.vip)
- rename_files_in_directory(directory): i* g, b" l s) { S(欢迎访问老王论坛:laowang.vip)
- else:* @2 K* r- [& k" r" N(欢迎访问老王论坛:laowang.vip)
- print(f"目录 {directory} 不存在,请检查路径。")
复制代码
1 i. N6 _- @" g7 e, J- M. `
; [" W( h# d. u& L1 {+ x0 f
! f* A4 Z4 w) h6 g |