爬虫案例-爬取某度文档利用飞桨ch_pp-ocrv3模型提高对图片的识别

文章目录

1.安装VC_redist.x64库和开启开发者模式

下载VC_redist.x64: 点击这里
在开发者选项,打开开发人员模式

2.第三方库的安装和paddlehub安装

python 复制代码
#以下是安装http请求的第三方库
pip install requests
#以下是安装处理文档的第三方库
pip install python-docx
#以下是大量处理维度数组与矩阵运算的第三方库
pip install numpy
#以下是图像处理和计算机视觉方面的很多通用算法的第三方库
pip install opencv-python
#以下是作为底层框架,支持模型的训练和推理GPU版。
pip install paddlepaddle-gpu
#以下是作为底层框架,支持模型的训练和推理CPU版。
pip install paddlepaddle
#以下是提供了模型的管理和一键预测功能
pip install paddleHub
#以下是安装ch_pp-ocrv3模型
hub install ch_pp-ocrv3

3、爬取某度文档的代码

python 复制代码
import requests
import os
from docx import Document
import cv2
import numpy as np
import paddlehub as hub

url = "https://wenku.baidu.com/gsearch/rec/pcviewdocrec2023?"
header = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0"}

data = {
    'sessionId': '3235255445-3246997752--',
    'docId': '3a283569cc84b9d528ea81c758f5f61fb7362802',
    'query': '什么是AI?什么是人工智能?',
    'recPositions': 'catalog,toplist'
}

request = requests.get(url,params=data,headers=header)
#print(request)
'''以下测试用的
#响应数据
print(request.text)
#响应头信息
#print(request.headers)
#状态码
#print(request.status_code)
'''

#爬取百度文档的图片
i = 0
print(request.text)
output_folder = r"C:/Users/zzx/Desktop/百度文档" + "/"
if not os.path.exists(output_folder):
    os.makedirs(output_folder)
for index in request.json()["data"]["catalogDoc"]:
    i+=1
    pic = index['pic']
    img_content = requests.get(pic,stream=True).content
    with open(output_folder + index["title"] +str(i) + '.jpg', mode='wb') as f:
        f.write(img_content)
    print(i,pic)
# 列出输出文件夹中的图片进行文字识别后转换成文档docx
for filename in os.listdir(output_folder):
    if filename.endswith('.jpg'):
        #print(filename)
        image_path = os.path.join(output_folder,filename)
        print(image_path)
        # 使用 numpy 的 fromfile 函数读取图像文件,可以用output_folder中文路径识别图片
        image_numpy = np.fromfile(image_path, dtype=np.uint8)
        # 使用 cv2.imdecode 函数解码图像
        image = cv2.imdecode(image_numpy, cv2.IMREAD_COLOR)
        print(image)
        #判断如果图片存在执行
        if image is not None:
            # 转换为灰度图像
            gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
            # 转换为RGB格式(PaddleOCR需要)
            processed_img = cv2.cvtColor(gray, cv2.COLOR_GRAY2RGB)
            # OCR识别,mkldnn加速仅在CPU下有效
            ocr = hub.Module(name="ch_pp-ocrv3", enable_mkldnn=True)
            results = ocr.recognize_text(images=[processed_img])
            #生成Word文档
            doc = Document()
            if results and len(results) > 0:
                text_data = results[0]['data']
                texts = [item['text'] for item in text_data]
                doc.add_paragraph('\n'.join(texts))
            # 保存生成的Word文档,使用不同的文件名
            doc.save(os.path.join(output_folder, f'{filename[:-4]}.docx'))

4、效果

下载的图片
>
通过ch_pp-ocrv3模型识别文字,效果相当好

相关推荐
从负无穷开始的三次元代码生活21 小时前
Python网络爬虫——知识点
爬虫·python
Coovally AI模型快速验证21 小时前
当小龙虾算法遇上YOLO:如何提升太阳能电池缺陷检测精度?
人工智能·深度学习·算法·yolo·目标检测·无人机
深圳行云创新1 天前
行云创新 AI+CloudOS:AI + 云原生落地新范式
人工智能·云原生·系统架构
AI视觉网奇1 天前
火星- ue数字人智能体 学习笔记
人工智能·笔记·学习
边缘计算社区1 天前
第12届全球边缘计算大会-精彩瞬间
大数据·人工智能·边缘计算
后端小肥肠1 天前
DeepSeek3.2+Coze王炸组合!小红书这个隐秘赛道有人成交7万单,有手就行!
人工智能·aigc·coze
阳光普照世界和平1 天前
2025年智能体架构与主流技术深度研究报告:从生成式AI迈向自主执行层
人工智能·架构
hzp6661 天前
招牌红烧肉版-深度神经网络
人工智能·深度学习·神经网络·llm·aigc·dnn·反向传播
乾元1 天前
Service Mesh 与网络抽象:AI 如何做服务层次网络策略生成(微服务 / 云原生)
网络·人工智能·安全·微服务·云原生·运维开发·service_mesh
Zoey的笔记本1 天前
告别“人机混战”:如何用智能管控实现安全高效协同
大数据·人工智能