自动识别图片获取数据
-
所需包
import requests #2.24.0 import base64 # from selenium import webdriver # selenium 3.141.0
-
还需谷歌浏览器插件
下载版本相近即可
http://chromedriver.storage.googleapis.com/index.html
-
登录百度智能云 创建仓库
-
url = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=76pAIjuXCLKadjeOhGab0lAg&client_secret=3an8lrAaQO6hgPL71hg6jbTWKuOZ7KSC&'
-
截取图片
def get_my_img(): # 打开谷歌浏览器 browser = webdriver.Chrome() # 输入网址 browser.get('http://127.0.0.1:8080/register') # 获取到图片id img = browser.find_element_by_id('my_img') # 将图片截取到所存地址 img.screenshot('{}\\myutils\\code.png'.format(BASE_DIR)) # 关闭浏览器 browser.close()
-
获取数据
# 获取令牌 def baidu_token(): # 获取百度的令牌 res = requests.get(url=url) access_token = res.json().get("access_token") # print(access_token) # 返回令牌 return access_token def baidu_character_recognition(): ''' 通用文字识别(高精度版) ''' # 路由携带令牌 request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic?access_token=" + baidu_token() print(request_url) # 二进制方式打开图片文件 with open('{}\\myutils\\code.png'.format(BASE_DIR), 'rb') as f: img = base64.b64encode(f.read()) # 传递参数 params = {"image": img} # 传递头信息 headers = {'content-type': 'application/x-www-form-urlencoded'} # 发送post请求 response = requests.post(url=request_url, data=params, headers=headers) # 返回解析后的数据 print(response.json().get("words_result")[0].get("words").replace(" ", "")) if __name__ == '__main__': baidu_character_recognition()