Python黄图批量鉴别审核(多线程版)
Posted meitubk
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python黄图批量鉴别审核(多线程版)相关的知识,希望对你有一定的参考价值。
前言
最近写了一款微信小程序需要用到图片审核,人工审核是不可能的人工审核的太费精力了,所以我就写了一个多线程批量识别脚本来处理,主要是调用百度AI的接口,这里我是付费了也不贵审核一条1分钱不到,再说我的图片也没有很多,而且实名认证可以免费10000条。
准备
去百度AI平台注册一个账号,然后去申请一个内容审核的应用,申请完会给你一些程序需要用到的密钥。
然后根据说明文档下载PYTHON的SDK,大家还是看一下开发文档的好,也不多就几行而已。
里面比较关键的数据就是这个,返回结果类型
conclusionType uint64 N 审核结果类型,可取值1、2、3、4,分别代表1:合规,2:不合规,3:疑似,4:审核失败
当你完成了上面操作后你就可以上代码了
代码
import json
from aip import AipImageCensor
from multiprocessing.pool import ThreadPool
checks = []
file_dumps = open("./dump.txt", "w", encoding=‘utf-8‘)
cur_count = 0
global_count = 0
# 这边就是填你上面申请的密钥
APP_ID = ‘‘
API_KEY = ‘‘
SECRET_KEY = ‘‘
def onetest(url):
global cur_count
try:
client = AipImageCensor(APP_ID, API_KEY, SECRET_KEY)
result = client.imageCensorUserDefined(url)
result = json.loads(str(result).replace("‘", ‘"‘))
print(str(result) + " - {" + str(cur_count) + "/" + str(global_count) + "}")
if "‘conclusionType‘: 1" in str(result):
file_dumps.write(url)
cur_count = cur_count + 1
except Exception as e:
print(e)
def loaddata():
global global_count
with open("./urls.txt", "r", encoding=‘utf-8‘) as file:
for line in file.readlines():
checks.append(line)
global_count = len(checks)
def main():
loaddata()
pool = ThreadPool(processes=50)
pool.map(onetest, checks)
pool.close()
pool.join()
if __name__ == ‘__main__‘:
main()
你只需要准备好 urls.txt 这个放一堆链接的文件就可以了。当然我这是调用的远程图片,你也可以根据文档改成本地图片道理是一样的。
结语
审核的时候忘记截图了,反正运行上面的代码你只需要去泡杯茶就可以了,接下来完全交给程序操作。
以上是关于Python黄图批量鉴别审核(多线程版)的主要内容,如果未能解决你的问题,请参考以下文章