“ 涨姿势——教你如何获取图片上的文字”
同事写了一句很美丽的句子,我叫他发了一下给我,我想收藏,结果他却截图,截图,截图 给我,我很方……
看了看图片,想到了现在的图片识别,我没有什么好的方法能快速识别图片上的文字,想到这里,立马开始行动起来。
1— 我们的想法总是会使我们前进
那我们的目的就非常清楚,我们需要做的就是将图片上的文字提取出来,然后得到我们的文字信息。
想法:
1、我们还没有能力写出机器学习的本来,那我们要怎么做,这时候,我突然发现第三方绝对是一个神秘的组织群体,
2、有了第三方,那使用哪个第三方呢?当然是提供给我们需要功能的第三方。
3、搜索百度之后,才发现,百度这个第三方很好使用,就是他了。
4、刚好查询到,百度有一个图片识别的接口,好了,就用它了。
接口:
https://aip.baidubce.com/rest/2.0/ocr/v1/webimage
其他材料:
一张带有文字的图片。
02— 代码实现
获取到接口,那接下来就是去实现它:
首先来解决一下
access_token
我们需要使用到另外的一个接口,
access_token= 'https://aip.baidubce.com/oauth/2.0/token?'
'grant_type=client_credentials&' \
'client_id=YtY4Q9wTWBFuc6B6P8XhmOV' \
'&client_secret=rwi6dj6YB4kH9IvbK6gtGvdXtq'
client_id 和 client_secret 这两个参数都需要到百度api后台去申请应用才能获取到。
然后是获取access_token的代码:
headers={'Content-Type': 'application/json; charset=UTF-8'}
host = 'https://aip.baidubce.com/oauth/2.0/token?' \
'grant_type=client_credentials&' \
'client_id=YtY4Q3UwTWBFuc6BP8XhmOV' \
'&client_secret=rwi6dj6YB4CkHhRNOIvbK6gtGvdXtq'
access_token=requests.get(host,headers=headers).json()["access_token"]
access_token获取成功,那我们接下来拿出我们准备的图片,
获取图片文字代码:
file = open("图片地址", 'rb')
image = file.read()
file.close()
webimage=requests.post("https://aip.baidubce.com/rest/2.0/ocr/v1/webimage?access_token="+access_token,
headers={"Content-Type":"application/x-www-form-urlencoded"},
data={"image":base64.b64encode(image)}).json()
for i in webimage["words_result"]:
print(i["words"],end='')#拼接文字输出
来看完整代码:
import requests
import base64
headers={'Content-Type': 'application/json; charset=UTF-8'}
host = 'https://aip.baidubce.com/oauth/2.0/token?' \
'grant_type=client_credentials&' \
'client_id=YtY4Q3UwTFuc6B6P8XhmOV' \
'&client_secret=rwi6dj6YB4CkHhRV1NvbK6gtGvdXtq'
access_token=requests.get(host,headers=headers).json()["access_token"]
file = open("图片地址", 'rb')# 读取图片
image = file.read()
file.close()
webimage=requests.post("https://aip.baidubce.com/rest/2.0/ocr/v1/webimage?access_token="+access_token,
headers={"Content-Type":"application/x-www-form-urlencoded"},
data={"image":base64.b64encode(image)}).json()
for i in webimage["words_result"]:
print(i["words"],end='')#拼接文字并输出
当然除了用来获取文字之外,还可以用来翻页验证码使用。
在进行自动化操作时,验证码跳不过去,那可以试一下把验证码翻译过来。
了解更多,欢迎关注我们:
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/111409.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...