Compare commits
30 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
759e546534 | ||
|
|
222337a5f0 | ||
|
|
9fb6122a9d | ||
|
|
9f0c01d62e | ||
|
|
6ed79d8fcb | ||
|
|
abb53c3219 | ||
|
|
6578d807ca | ||
|
|
e9acd32fd7 | ||
|
|
0c64165b49 | ||
|
|
6278659e55 | ||
|
|
ca2c97a98f | ||
|
|
164cc464dc | ||
|
|
faa99507ad | ||
|
|
d7a48d2829 | ||
|
|
c40936f1c4 | ||
|
|
38b26d4161 | ||
|
|
e17dffba4e | ||
|
|
ae1a91bf28 | ||
|
|
208c24b606 | ||
|
|
751450ebad | ||
|
|
e429ca3c7d | ||
|
|
9e26558666 | ||
|
|
759b30ec5c | ||
|
|
b7c195b76e | ||
|
|
7038fcf8ed | ||
|
|
54041313dc | ||
|
|
47a29f6628 | ||
|
|
839610d230 | ||
|
|
a0b324c1a8 | ||
|
|
1996807702 |
@@ -51,8 +51,8 @@ if __name__ =='__main__':
|
|||||||
if '_' in i:
|
if '_' in i:
|
||||||
os.rename(re.search(r'[^\\/:*?"<>|\r\n]+$', i).group(), rreplace(re.search(r'[^\\/:*?"<>|\r\n]+$', i).group(), '_', '-', 1))
|
os.rename(re.search(r'[^\\/:*?"<>|\r\n]+$', i).group(), rreplace(re.search(r'[^\\/:*?"<>|\r\n]+$', i).group(), '_', '-', 1))
|
||||||
i = rreplace(re.search(r'[^\\/:*?"<>|\r\n]+$', i).group(), '_', '-', 1)
|
i = rreplace(re.search(r'[^\\/:*?"<>|\r\n]+$', i).group(), '_', '-', 1)
|
||||||
#os.system('python core.py' + ' "' + i + '"') #选择从py文件启动 (用于源码py)
|
os.system('python core.py' + ' "' + i + '"') #选择从py文件启动 (用于源码py)
|
||||||
os.system('core.exe' + ' "' + i + '"') #选择从exe文件启动(用于EXE版程序)
|
#os.system('core.exe' + ' "' + i + '"') #选择从exe文件启动(用于EXE版程序)
|
||||||
print("[*]=====================================")
|
print("[*]=====================================")
|
||||||
|
|
||||||
print("[!]Cleaning empty folders")
|
print("[!]Cleaning empty folders")
|
||||||
|
|||||||
75
README.md
75
README.md
@@ -1,36 +1,24 @@
|
|||||||
<h1 style="text-align:center">日本AV元数据抓取工具</h1>
|
## 前言
|
||||||
|
  目前,我下的AV越来越多,也意味着AV要集中地管理,形成媒体库。现在有两款主流的AV元数据获取器,"EverAver"和"Javhelper"。前者的优点是元数据获取比较全,缺点是不能批量处理;后者优点是可以批量处理,但是元数据不够全。<br>
|
||||||
## 关于本软件 (~路star谢谢)
|
  为此,综合上述软件特点,我写出了本软件,为了方便的管理本地AV,和更好的手冲体验。
|
||||||
|
|
||||||
|
|
||||||
目前,我下的AV越来越多,也意味着AV要集中地管理,形成媒体库。现在有两款主流的AV元数据获取器,"EverAver"和"Javhelper"。前者的优点是元数据获取比较全,缺点是不能批量处理;后者优点是可以批量处理,但是元数据不够全。
|
|
||||||
|
|
||||||
为此,综合上述软件特点,我写出了本软件,为了方便的管理本地AV,和更好的手冲体验。没女朋友怎么办ʅ(‾◡◝)ʃ
|
|
||||||
|
|
||||||
**tg官方电报群:https://t.me/AV_Data_Capture_Official**
|
|
||||||
|
|
||||||
### **请认真阅读下面使用说明再使用** * [如何使用](#如何使用)
|
|
||||||
|
|
||||||
|
**可以结合pockies大神的[ 打造本地AV(毛片)媒体库 ](https://pockies.github.io/2019/03/25/everaver-emby-kodi/)看本文档**<br>
|
||||||
|
**tg官方电报群:[ 点击进群](https://t.me/AV_Data_Capture_Official)**<br>
|
||||||
|
**推荐用法: 按照 [如何使用](#如何使用) 使用该软件后,对于不能正常获取元数据的电影可以用[ Everaver ](http://everaver.blogspot.com/)来补救**<br>
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
## 软件流程图
|
|
||||||

|
|
||||||
|
|
||||||
# 如何使用
|
# 如何使用
|
||||||
---------------
|
release的程序可脱离python环境运行,可跳过第一步<br>
|
||||||
release的程序可脱离python环境运行,可跳过第一步
|
|
||||||
|
|
||||||
下载地址(Windows):https://github.com/wenead99/AV_Data_Capture/releases
|
下载地址(Windows):https://github.com/wenead99/AV_Data_Capture/releases
|
||||||
|
|
||||||
## 1. 请安装requests,pyquery,lxml,Beautifulsoup4,pillow模块,在 CMD/终端 逐条输入以下命令安装
|
## 1.请安装模块,在CMD/终端逐条输入以下命令安装
|
||||||
```python
|
```python
|
||||||
pip install requests
|
pip install requests
|
||||||
```
|
```
|
||||||
###
|
###
|
||||||
```python
|
```python
|
||||||
pip install pyquery
|
pip install pyquery
|
||||||
```
|
```
|
||||||
###
|
###
|
||||||
```python
|
```python
|
||||||
pip install lxml
|
pip install lxml
|
||||||
@@ -43,46 +31,61 @@ pip install Beautifulsoup4
|
|||||||
```python
|
```python
|
||||||
pip install pillow
|
pip install pillow
|
||||||
```
|
```
|
||||||
|
###
|
||||||
|
|
||||||
## 2. 设置本地代理
|
## 2. 设置proxy.ini
|
||||||
**针对网络审查国家或地区**
|
#### 1.针对网络审查国家或地区
|
||||||
|
|
||||||
打开```proxy.ini```,在```[proxy]```下的```proxy```行设置本地代理地址和端口,支持Shadowsocks/R,V2RAY本地代理端口:
|
打开```proxy.ini```,在```[proxy]```下的```proxy```行设置本地代理地址和端口,支持Shadowsocks/R,V2RAY本地代理端口:<br>
|
||||||
```proxy=127.0.0.1:1080```
|
例子:```proxy=127.0.0.1:1080```
|
||||||
|
|
||||||
|
#### 2.设置自定义目录和影片重命名规则
|
||||||
|
|
||||||
|
**目前可以提取元素的影片:JAVBUS上有元数据的电影,素人系列:300Maan,326scp,326urf,259luxu,siro系列,FC2系列(不推荐)**<br>
|
||||||
|
##### 命名参数<br>
|
||||||
|
>title = 片名<br>
|
||||||
|
>actor = 演员<br>
|
||||||
|
>studio = 公司<br>
|
||||||
|
>director = 导演<br>
|
||||||
|
>release = 发售日<br>
|
||||||
|
>year = 发行年份<br>
|
||||||
|
>number = 番号<br>
|
||||||
|
>cover = 封面链接<br>
|
||||||
|
>tag = 类型<br>
|
||||||
|
>outline = 简介<br>
|
||||||
|
>runtime = 时长<br>
|
||||||
|
##### **例子**:<br>
|
||||||
|
>目录结构:'JAV_output/'+actor+'/'+actor+' '+' ['+year+']'+title+' ['+number+']'<br>
|
||||||
|
>影片命名(上面目录之下的文件):'['+number+']-'+title
|
||||||
|
|
||||||
## 3. 关于番号提取失败或者异常
|
## 3. 关于番号提取失败或者异常
|
||||||
>下一张图片来自Pockies的blog:https://pockies.github.io/2019/03/25/everaver-emby-kodi/ 原作者已授权
|
>下一张图片来自Pockies的blog:https://pockies.github.io/2019/03/25/everaver-emby-kodi/ 原作者已授权
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
目前作者已经完善了番号提取机制,功能较为强大,可提取上述文件名的的番号,如果出现提取失败或者异常的情况,请用以下规则命名
|
||||||
**目前作者已经完善了番号提取机制,功能较为强大,可提取上述文件名的的番号,如果出现提取失败或者异常的情况,请用以下规则命名**
|
|
||||||
|
|
||||||
```
|
```
|
||||||
COSQ-004.mp4
|
COSQ-004.mp4
|
||||||
```
|
```
|
||||||
|
|
||||||
>文件名中间要有下划线或者减号"_","-",没有多余的内容只有番号为最佳,可以让软件更好获取元数据
|
文件名中间要有下划线或者减号"_","-",没有多余的内容只有番号为最佳,可以让软件更好获取元数据
|
||||||
>对于多影片重命名,可以用ReNamer来批量重命名
|
对于多影片重命名,可以用[ReNamer](http://www.den4b.com/products/renamer)来批量重命名
|
||||||
>软件官网:http://www.den4b.com/products/renamer
|
|
||||||
|
|
||||||
|
|
||||||
## 4. 把软件拷贝和AV的统一目录下
|
## 4. 把软件拷贝和AV的统一目录下
|
||||||
|
|
||||||
## 5. 运行 ```AV_Data_capture.py/.exe```
|
## 5. 运行 ```AV_Data_capture.py/.exe```
|
||||||
>**你也可以把单个影片拖动到core程序**
|
你也可以把单个影片拖动到core程序<br>
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## 6. 软件会自动把元数据获取成功的电影移动到JAV_output文件夹中,根据女优分类,失败的电影移动到failed文件夹中。
|
## 6. 软件会自动把元数据获取成功的电影移动到JAV_output文件夹中,根据女优分类,失败的电影移动到failed文件夹中。
|
||||||
|
|
||||||
## 7. 把JAV_output文件夹导入到EMBY,KODI中,根据封面选片子,享受手冲乐趣
|
## 7. 把JAV_output文件夹导入到EMBY,KODI中,根据封面选片子,享受手冲乐趣
|
||||||
|
|
||||||
## 8.输出的文件如下
|
## 8.输出的文件如下
|
||||||

|

|
||||||

|

|
||||||

|

|
||||||
|
|
||||||
|
## 软件流程图
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
4
core.py
4
core.py
@@ -107,9 +107,9 @@ def getNumberFromFilename(filepath):
|
|||||||
except: #添加 无需 正则表达式的规则
|
except: #添加 无需 正则表达式的规则
|
||||||
# ====================fc2fans_club.py===================
|
# ====================fc2fans_club.py===================
|
||||||
if 'fc2' in filename:
|
if 'fc2' in filename:
|
||||||
json_data = json.loads(fc2fans_club.main(file_number))
|
json_data = json.loads(fc2fans_club.main(file_number.strip('fc2_').strip('fc2-')))
|
||||||
elif 'FC2' in filename:
|
elif 'FC2' in filename:
|
||||||
json_data = json.loads(fc2fans_club.main(file_number))
|
json_data = json.loads(fc2fans_club.main(file_number.strip('FC2_').strip('FC2-')))
|
||||||
|
|
||||||
#========================siro.py========================
|
#========================siro.py========================
|
||||||
elif 'siro' in filename:
|
elif 'siro' in filename:
|
||||||
|
|||||||
@@ -7,7 +7,8 @@ def getTitle(htmlcode): #获取厂商
|
|||||||
#print(htmlcode)
|
#print(htmlcode)
|
||||||
html = etree.fromstring(htmlcode,etree.HTMLParser())
|
html = etree.fromstring(htmlcode,etree.HTMLParser())
|
||||||
result = str(html.xpath('/html/body/div[2]/div/div[1]/h3/text()')).strip(" ['']")
|
result = str(html.xpath('/html/body/div[2]/div/div[1]/h3/text()')).strip(" ['']")
|
||||||
return result
|
result2 = str(re.sub('\D{2}2-\d+','',result)).replace(' ','',1)
|
||||||
|
return result2
|
||||||
def getStudio(htmlcode): #获取厂商
|
def getStudio(htmlcode): #获取厂商
|
||||||
html = etree.fromstring(htmlcode,etree.HTMLParser())
|
html = etree.fromstring(htmlcode,etree.HTMLParser())
|
||||||
result = str(html.xpath('/html/body/div[2]/div/div[1]/h5[3]/a[1]/text()')).strip(" ['']")
|
result = str(html.xpath('/html/body/div[2]/div/div[1]/h5[3]/a[1]/text()')).strip(" ['']")
|
||||||
|
|||||||
14
proxy.ini
14
proxy.ini
@@ -2,15 +2,5 @@
|
|||||||
proxy=127.0.0.1:1080
|
proxy=127.0.0.1:1080
|
||||||
|
|
||||||
[Name_Rule]
|
[Name_Rule]
|
||||||
location_rule='JAV_output/'+actor+'/'+actor+'-'+year+'- '+title+'['+number+']'
|
location_rule='JAV_output/'+actor+'/'+title
|
||||||
naming_rule=actor+'-'+year+'- '+title+'['+number+']'
|
naming_rule=number
|
||||||
#============================================================
|
|
||||||
#
|
|
||||||
# title=标题,number=番号,stdio=片商,year=年份,director=导演,actor=女优,outline=简介
|
|
||||||
# runtime=时长,release=上市日期,cover=封面URL,tag=类型
|
|
||||||
# 例子:
|
|
||||||
# rule=str('JAV_output/'+actor+'/'+actor+' '+' ['+year+']'+title+' ['+number+']')
|
|
||||||
# 例子结束
|
|
||||||
# 自定义字符(字符串)要加冒号'(内容)',字符串连接要用加号+
|
|
||||||
#
|
|
||||||
#============================================================
|
|
||||||
Reference in New Issue
Block a user