国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

百度圖片識別orc實現普通驗證碼識別

yibinnn / 2777人閱讀

摘要:在爬取網站的時候都遇到過驗證碼,那么我們有什么方法讓程序自動的識別驗證碼呢其實網上已有很多打碼平臺,但是這些都是需要。但對于僅僅爬取點數據而接入打碼平臺實屬浪費。所以百度免費正好可以利用。

在爬取網站的時候都遇到過驗證碼,那么我們有什么方法讓程序自動的識別驗證碼呢?其實網上已有很多打碼平臺,但是這些都是需要money。但對于僅僅爬取點數據而接入打碼平臺實屬浪費。所以百度免費orc正好可以利用。(每天500次免費)

1、注冊百度賬號、百度云管理中心創建應用、生成AppKey、SecretKey(程序調用接口是要生成access_token)

2、利用AppKey、SecretKey生成access_token
向授權服務地址https://aip.baidubce.com/oaut...發送請求(推薦使用POST)并在URL中帶上以下參數:
grant_type: 必須參數,固定為client_credentials;
client_id: 必須參數,應用的API Key;
client_secret: 必須參數,應用的Secret Key
代碼如下:

/**
 1. 獲取AccessToken
 2. APIKey:
 3. SecretKey:
 4. @return
 */
public static String getAccessToken() {
    String accessToken = "";
    HttpRequestData httpRequestData = new HttpRequestData();
    HashMap params = new HashMap<>();
    params.put("grant_type", "client_credentials");
    params.put("client_id", "你的APIKey");
    params.put("client_secret", "SecretKey");
    httpRequestData.setRequestMethod("GET");
    httpRequestData.setParams(params);
    httpRequestData.setRequestUrl("https://aip.baidubce.com/oauth/2.0/token");
    HttpResponse response = HttpClientUtils.execute(httpRequestData);
    String json = "";
    try {
        json = IOUtils.toString(response.getEntity().getContent());
    } catch (IOException e) {
        e.printStackTrace();
    }
    if (response.getStatusLine().getStatusCode() == 200) {
        JSONObject jsonObject = JSONObject.parseObject(json);
        if (jsonObject != null && !jsonObject.isEmpty()) {
            accessToken = jsonObject.getString("access_token");
        }
    }
    return accessToken;
}

3、請求百度orc通用文字識別API(下面以百度通用識別api識別為例)
請求API的URL https://aip.baidubce.com/rest...
請求方法 POST
請求URL參數 access_token
請求頭 (Header) Content-Type application/x-www-form-urlencoded
Body中放置請求參數,主要參數詳情如下:

image : 圖像數據,base64編碼,要求base64編碼后大小不超過4M,最短邊至少15px,最長邊最大4096px,支持jpg/png/bmp格式,當image字段存在時url字段失效

url : 圖片完整URL,URL長度不超過1024字節,URL對應的圖片base64編碼后大小不超過4M,最短邊至少15px,最長邊最大4096px,支持jpg/png/bmp格式,當image字段存在時url字段失效

/**
 * 獲取識別驗證碼
 * @param imageUrl
 * @return
 */
public static String OCRVCode(String imageUrl){
    String VCode = "";

    if (StringUtils.isBlank(ACCESS_TOKEN)) {
        logger.error("accessToken為空");
        return VCode;
    }
    OCRUrl = OCRUrl + "?access_token=" + ACCESS_TOKEN;

    HashMap headers = new HashMap<>();
    headers.put("Content-Type", "application/x-www-form-urlencoded");

    HashMap params = new HashMap<>();
    imageUrl = ImageBase64ToStringUtils.imageToStringByBase64(imageUrl);
    params.put("image", imageUrl);

    HttpRequestData httpRequestData = new HttpRequestData();
    httpRequestData.setHeaders(headers);
    httpRequestData.setRequestMethod("post");
    httpRequestData.setParams(params);
    httpRequestData.setRequestUrl(OCRUrl);
    HttpResponse response = HttpClientUtils.execute(httpRequestData);
    String json = "";
    if (response.getStatusLine().getStatusCode() == 200) {
        try {
            json = IOUtils.toString(response.getEntity().getContent());
            JSONObject jsonObject = JSONObject.parseObject(json);
            JSONArray wordsResult = jsonObject.getJSONArray("words_result");
            VCode = wordsResult.getJSONObject(0).getString("words");
        } catch (IOException e) {
            logger.error("請求識別失??!", e);
        }
    }
    return VCode;
}

對圖片進行base64編碼字符

/**
 * 將本地圖片進行Base64位編碼
 * @param imageFile
 * @return
 */
public static String encodeImgageToBase64(String imageFile) {
    // 其進行Base64編碼處理
    byte[] data = null;
    // 讀取圖片字節數組
    try {
        InputStream in = new FileInputStream(imageFile);
        data = new byte[in.available()];
        in.read(data);
        in.close();
    } catch (IOException e) {
        e.printStackTrace();
    }

    // 對字節數組Base64編碼
    return Base64Util.encode(data);
}
4、返回結果以json方式返回
{
    "log_id": 2471272194,
        "words_result_num": 2,
        "words_result": 
[
    {"words": " TSINGTAO"},
    {"words": "青島睥酒"}
]
}

項目github地址:https://github.com/xwlmdd/ipP...
注:orc圖片識別模塊在這個項目里的一個工具類

我的公眾號,喜歡的朋友可以關注哦

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/70312.html

相關文章

  • node識別驗證

    摘要:驗證碼的識別成功率跟圖片質量關系密切,一般拿到后的驗證碼都得經過灰度化,二值化,去噪,利用就可以很方便的做到。 了解驗證碼 什么是驗證碼? 所謂驗證碼,就是將一串隨機產生的數字或符號,生成一幅圖片,圖片里加上一些干擾象素(防止OCR),由用戶肉眼識別其中的驗證碼信息,輸入表單提交網站驗證,驗證成功后才能使用某項功能,通俗說就是一種區分用戶是計算機和人的公共全自動程序 驗證碼的作用 可以...

    levy9527 評論0 收藏0
  • 14、web爬蟲講解2—Scrapy框架爬蟲—豆瓣登錄與利用打接口實現自動識別驗證

    摘要:登錄開發者后臺我的軟件獲得軟件軟件密鑰注意這里是普通會員賬號,不是開發者賬號,注冊地址開發者可以聯系客服領取免費調試題分請先設置用戶名密碼一鍵識別函數正在一鍵識別例表示位字母數字,不同類型收費不同。請準確填寫,否則影響識別率。 【百度云搜索:http://www.bdyss.cn】 【搜網盤:http://www.swpan.cn】 打碼接口文件 # -*- coding: cp936...

    wemall 評論0 收藏0
  • OCR識別驗證

    摘要:識別網站驗證碼詳見維基百科或者百度百科識別的驗證碼原理采集一批驗證碼,根據圖片特點進行初步處理二值化灰度化濾波降噪等處理然后分割圖片,旋轉圖片,模板選取,訓練算法,讓它更準確。 最近在爬某網站,老是蹦出來驗證碼,就想著找個OCR破了這個驗證碼,然后就開始了OCR探索之旅。 首先簡單說一下什么是OCR OCR是(Optical Character Recognition,光學字符識別)的...

    Yangyang 評論0 收藏0

發表評論

0條評論

yibinnn

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<