このポルノプラットフォームのために、壊れたハブサイトリソースを怒ってクロールする

イエローは、特にコンテンツツールとプラットフォームでは、我慢できないが防止できないものであるため、ポルノプラットフォームを構築してすべての人と共有するのに30分かかりました。

#データ準備

N個のリソースが見つかり、問題を解決できなかったため、特定のBubデータを猛烈にクロールし、ポルノ効果を確認する準備をしました。

#アカウントの準備

この記事はUCloudが提供するUAI-Censorを使用しており、現在は写真をサポートしており、暴力的なテロ組織や政治団体が続々と立ち上げられています。彼は1日あたり2,000件の無料通話を提供しているため、テストツールやニッチツールには十分です。

1.次のリンクを使用してアカウントを登録します

https://urlify.cn/Bj2Y3y

2. UAI-Censorアプリケーションを作成する

アプリケーションIDを取得し、ポルノAPI呼び出しを呼び出すときにそれを使用します。登録が成功したら、コンソールに入り、UAIを検索して、[AIコンテンツレビュー]をクリックします

このポルノプラットフォームのために、壊れたハブサイトリソースを怒ってクロールする

 

[Create Application]をクリックし、カスタムアプリケーション名を入力して、[OK]をクリックします

このポルノプラットフォームのために、壊れたハブサイトリソースを怒ってクロールする

 

[OK]をクリックすると、成功したポップアップボックスが表示され、強調表示された部分がアプリケーションIDです。バックアップ用に保持してください

このポルノプラットフォームのために、壊れたハブサイトリソースを怒ってクロールする

 

3.公開鍵、秘密鍵、アプリケーションIDを取得する

わかりましたが、誰でもできませんか?すべてが公開鍵と秘密鍵を登録して、自分だけが使用できるようにする必要があります。クリックして次のリンクを入力してください

https://console.ucloud.cn/uapi/apikey

表示をクリックして公開鍵と秘密鍵を表示します

このポルノプラットフォームのために、壊れたハブサイトリソースを怒ってクロールする

 

東風だけが準備できました

4.コーディング

コーディングする前に、手動でAPIを呼び出して、返された結果を確認できます

このポルノプラットフォームのために、壊れたハブサイトリソースを怒ってクロールする

 

図に示すように、公開鍵、秘密鍵、アプリケーションIDを入力した後、検証をクリックすると、一連のJSONが返されます。実際に重要なのは、結果のポルノの提案、パスリリース、禁止禁止、チェックの手動レビューです。次に、上記のテストはパスリリースです。待ってください、信じられませんね。現時点では、特定のハブのリソースが役立ちます。ここに1つあります。

私はまっすぐに見るのに耐えられないので、私はタイプしただけですが、あなたは禁断を見ましたか?

このポルノプラットフォームのために、壊れたハブサイトリソースを怒ってクロールする

 

直接コード化してみましょう。コードも非常にシンプルです。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;
    }

とても簡単ですか?それでは、発見の旅を始めましょう。

おすすめ

転載: blog.csdn.net/python8989/article/details/108502920