Python如何实现自动提取并收集信息
这篇文章主要介绍了Python如何实现自动提取并收集信息的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python如何实现自动提取并收集信息文章都会有所收获,下面我们一起来看看吧。
一、简介本功能目的在于提取收据/发票上的信息,用机器代替人的方式,提高工作效率
实现方式是通过cv2模块截取需要的信息,调用百度的api文字识别接口
二、代码实现1.导入需要的库,包括百度的api接口跟cv2图像截图图库
importcv2fromaipimportAipOcr#读取图片,利用imshow显示图片pic=cv2.imread(r'Y:cutimg1.png')pic=cv2.resize(pic,None,fx=0.5,fy=0.5)cv2.imshow('img',pic)cv2.waitKey(0)
2.截取图片,获取需要的信息,包括以下信息
时间Time
商家business
商品goods
价格money
单号num
#删除不必要的部分img=pic[210:500,100:580]#截取各部分的文字time=pic[400:430,100:580]business=pic[370:400,100:580]goods=pic[350:380,100:580]money=pic[210:300,100:580]num=pic[460:500,100:580]#查看截取的部分是否合适gener_name=['time','business','goods','money','num']excel_data={}pd_columns=["a","b","c","d","e"]#标题
3.定义函数将截取好的图片另存到文件夹
defshotcut_image(args):forindexingener:cv2.imwrite('image/{}.png'.format(args),img)
4.调用百度api接口,实现文字识别
#导入apiAppID='24177719'API_Key='p8skmRYfHGoVGR4UU03Q5jiM'Secret_Key='dyM0tzSILBZu9CFqZ7IkjWwECGaws4xo'cilent=AipOcr(AppID,API_Key,Secret_Key)defget_words(img_name):withopen('image/{}.png'.format(img_name),'rb')asf:result=cilent.basicAccurate(f.read())returnresult
5.最后将信息转为Dataframe,利用pandas的to_exccel功能,将数据放到excel里面
defconvert_to_dataframe(words):#构建dataframeresult=words['words_result']forwordinresult:excel_data.setdefault('a',[]).append(word['words'])#将所有words读取后,取出语句存入exceldefconvert_to_excel():frame=DataFrame(excel_data,columns=pd_columns)#todo表头需要额外处理,这里指定不设置表头frame.to_excel('out.xls',index=False,header=False)
关于“Python如何实现自动提取并收集信息”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Python如何实现自动提取并收集信息”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。