怒爬某破 Hub 站资源,只为撸这个鉴黄平台!
黃色已經是我們所不容然而卻防不勝防的,尤其是對于做內容的工具和平臺,所以花了30分鐘搭建了一個鑒黃平臺,分享給大家。
數據準備
找了 N 多資源都不能解決問題,于是怒爬某 Bub資料,備用準備驗證鑒黃效果。
“推薦一個艿艿寫的 6000+ Star 的 SpringBoot + SpringCloud + Dubbo 教程的倉庫:https://github.com/YunaiV/SpringBoot-Labs
賬號準備
本文使用的是 UCloud 提供的 UAI-Censor,目前他支持圖片,暴恐、涉政會陸續上線。他提供了每日2000張免費調用額度,所以無論對于測試還是小眾的工具足夠了。
1、使用如下鏈接注冊賬號
https://urlify.cn/Bj2Y3y
2、創建 UAI-Censor 應用
獲得應用 ID 進行鑒黃 API 調用的時候使用,注冊成功以后進入控制臺,搜索 UAI,然后點擊 AI 內容審核
點擊創建應用,輸入自定義的應用名稱,點擊確定
點擊確定以后會顯示成功的彈框,高亮部分就是你的應用ID,留著備用
3、獲取公鑰、私鑰,應用ID
獲取了,但是不能所有人都操作吧?所有需要去注冊一個公鑰和私鑰,這樣只有你自己可以使用。點擊進入如下鏈接
https://console.ucloud.cn/uapi/apikey
點擊顯示即可查看公鑰私鑰了
到這里就是萬事具備只欠東風
4、編碼
在編碼之前我們可以手工調用一下 API 看下返回結果
如圖所示,我們輸入公鑰、私鑰和應用ID以后,點擊驗證會返回一堆的 JSON 其實我們關心的就是 Result 里面的 Porn 的 Suggestion,pass-放行, forbid-封禁, check-人工審核,那么上面這個測試就是 pass 放行了,等下,你居然不相信是嗎?這時候某 Hub 的資源就派上用場了,來一張。
實在不忍直視啊,我就打碼了,不過看到 ?forbid了嗎
那我們直接編碼吧,代碼也是非常的簡單,其中uaicensorPublicKey 和 uaicensorPrivateKey 是你自己的,這里就不顯示了,因為使用的是 SpringBoot 項目,RestTemplate 用起來也是非常簡單。
????/***?@param?imageUrl*?@return?pass-放行,?forbid-封禁,?check-人工審核*?@throws?Exception*/public?String?check(String?imageUrl)?{String?ucloudUrl?=?"http://api.uai.ucloud.cn/v1/image/scan";String?appId?=?"uaicensor-rjmvogpx";String?uaicensorPublicKey?=?null;String?uaicensorPrivateKey?=?null;//圖片絕對路徑RestTemplate?rest?=?new?RestTemplate();HttpHeaders?headers?=?new?HttpHeaders();/***?生成signature,首字母排序*/String?timestamp?=?System.currentTimeMillis()?+?"";SortedMap<Object,?Object>?packageParams?=?new?TreeMap<>();packageParams.put("PublicKey",?uaicensorPublicKey);packageParams.put("ResourceId",?appId);packageParams.put("Timestamp",?timestamp);packageParams.put("Url",?imageUrl);String?signature?=?null;try?{signature?=?UCloudUtil.createSign(packageParams,?uaicensorPrivateKey);}?catch?(Exception?e)?{return?null;}/***?參數*/MultiValueMap<String,?Object>?param?=?new?LinkedMultiValueMap<>();param.add("Scenes",?"porn");param.add("Method",?"url");param.add("Url",?imageUrl);/***?headers?參數*/headers.setContentType(MediaType.parseMediaType("multipart/form-data;?charset=UTF-8"));headers.set("PublicKey",?uaicensorPublicKey);headers.set("Signature",?signature);headers.set("ResourceId",?appId);headers.set("Timestamp",?timestamp);HttpEntity<MultiValueMap<String,?Object>>?httpEntity?=?new?HttpEntity<>(param,?headers);ResponseEntity<String>?responseEntity?=?rest.exchange(ucloudUrl,?HttpMethod.POST,?httpEntity,?String.class);String?body?=?responseEntity.getBody();JSONObject?jsonObject?=?JSON.parseObject(body);if?(jsonObject.getInteger("RetCode")?==?0)?{String?res?=?jsonObject.getJSONObject("Result").getJSONObject("Porn").getString("Suggestion");return?res;}return?null;}是不是非常簡單?那么開始你的探索之旅吧?
總結
以上是生活随笔為你收集整理的怒爬某破 Hub 站资源,只为撸这个鉴黄平台!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 面试:如何从 100 亿 URL 中找出
- 下一篇: 一文带你 API 网关从入门到放弃