testocr.py 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. # coding=utf-8
  2. import sys
  3. import json
  4. import requests
  5. import base64
  6. # 保证兼容python2以及python3
  7. IS_PY3 = sys.version_info.major == 3
  8. if IS_PY3:
  9. from urllib.request import urlopen
  10. from urllib.request import Request
  11. from urllib.error import URLError
  12. from urllib.parse import urlencode
  13. from urllib.parse import quote_plus
  14. else:
  15. import urllib2
  16. from urllib import quote_plus
  17. from urllib2 import urlopen
  18. from urllib2 import Request
  19. from urllib2 import URLError
  20. from urllib import urlencode
  21. # 防止https证书校验不正确
  22. import ssl
  23. ssl._create_default_https_context = ssl._create_unverified_context
  24. API_KEY = 'ssfyC49bEbp7QdGnG96GKdt2'
  25. SECRET_KEY = 'YCQtiQVt1GvldNZzyfOpbVtNugj7S1Uw'
  26. OCR_URL = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic"
  27. """ TOKEN start """
  28. TOKEN_URL = 'https://aip.baidubce.com/oauth/2.0/token'
  29. """
  30. 获取token
  31. """
  32. def fetch_token():
  33. params = {'grant_type': 'client_credentials',
  34. 'client_id': API_KEY,
  35. 'client_secret': SECRET_KEY}
  36. post_data = urlencode(params)
  37. if (IS_PY3):
  38. post_data = post_data.encode('utf-8')
  39. req = Request(TOKEN_URL, post_data)
  40. try:
  41. f = urlopen(req, timeout=5)
  42. result_str = f.read()
  43. except URLError as err:
  44. print(err)
  45. if (IS_PY3):
  46. result_str = result_str.decode()
  47. result = json.loads(result_str)
  48. if ('access_token' in result.keys() and 'scope' in result.keys()):
  49. if not 'brain_all_scope' in result['scope'].split(' '):
  50. print ('please ensure has check the ability')
  51. exit()
  52. return result['access_token']
  53. else:
  54. print ('please overwrite the correct API_KEY and SECRET_KEY')
  55. exit()
  56. def ocr():
  57. '''
  58. 通用文字识别(高精度版)
  59. '''
  60. request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic"
  61. # 二进制方式打开图片文件
  62. f = open('20201111181124.png', 'rb')
  63. img = base64.b64encode(f.read())
  64. params = {"image":img}
  65. access_token = '24.f7a57ed7b887ac523c606fa6b09dac88.2592000.1607681571.282335-22744183'
  66. request_url = request_url + "?access_token=" + access_token
  67. headers = {'content-type': 'application/x-www-form-urlencoded'}
  68. response = requests.post(request_url, data=params, headers=headers)
  69. if response:
  70. print (response.json())
  71. if __name__=="__main__":
  72. # print(fetch_token())
  73. ocr()