欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

写代码爬取了某 Hub 资源,只为撸这个鉴黄平台!

发布时间:2024/9/15 编程问答 85 豆豆
生活随笔 收集整理的这篇文章主要介绍了 写代码爬取了某 Hub 资源,只为撸这个鉴黄平台! 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

转自:码匠笔记

黄色已经是我们所不容然而却防不胜防的,尤其是对于做内容的工具和平台,所以花了30分钟搭建了一个鉴黄平台,分享给大家。

数据准备

找了 N 多资源都不能解决问题,于是怒爬某 Bub资料,备用准备验证鉴黄效果。

账号准备

本文使用的是 UCloud 提供的 UAI-Censor,目前他支持图片,暴恐、涉政会陆续上线。他提供了每日2000张免费调用额度,所以无论对于测试还是小众的工具足够了。

1. 使用如下链接注册账号

https://urlify.cn/UNjURr

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;}

是不是非常简单?那么开始你的探索之旅吧?

 好书赠送

简介:

本书涵盖Python 3.8实际开发的重要知识点,内容包括: Python语言的数据类型、运算符、数据结构、字符串、控制流、函数、序列、多线程、正则表达式、面向对象编程、文件操作、网络编程、邮件收发、数据库操作等,提供网络爬虫、自然语言处理、区块链项目和图片处理项目范例

上期中奖者公布 

END

为了回馈广大读者朋友,我特地免费送给大家三份大礼1. Pandas 官方教程中文版。  2. 300G 硬核 Python 视频,涵盖你所有想看。   3. 一个月精通 Python 的秘籍。 下面是部分视频的截图资料获取方法 长按扫描下方二维码关注 在后台回复关键词:资料

扫描关注,回复"资料"免费领取

总结

以上是生活随笔为你收集整理的写代码爬取了某 Hub 资源,只为撸这个鉴黄平台!的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。