当前位置: 首页 > article >正文

爬虫案例-爬取某度文档

文章目录

  • 1、第三方库的安装和pytesseract安装
  • 2、爬取某度文档的代码
  • 3、效果图

1、第三方库的安装和pytesseract安装

#以下是安装http请求的第三方库
pip install requests
#以下是安装处理文档的第三方库
pip install python-docx
#以下是安装处理图片的第三方库
pip install image pillow
#以下是识别图片中文字的第三方库
pip install pytesseract
#以下是大量处理维度数组与矩阵运算的第三方库
pip install numpy
#以下是图像处理和计算机视觉方面的很多通用算法的第三方库
pip install opencv-python

pytesseract需要本地安装用来配合Python安装的第三方库

pytesseractan安装包地址: 点击链接

在这里插入图片描述

在这里插入图片描述

安装时需要注意勾选安装语言包

在这里插入图片描述

2、爬取某度文档的代码

import requests
import os
from PIL import Image
from docx import Document
import pytesseract
import cv2
import numpy as np

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)
'''
#print(request.headers)
tesseract_cmd = r'D:\Tesseract-OCR\tesseract'
pytesseract.pytesseract.tesseract_cmd =tesseract_cmd

#爬取百度文档的图片
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)
        #PIL读取图像
        #image_open = Image.open(image_path)
        #print(image_open)
        #以下是opencv读取图像,output_folder有中文的路径识别不了图片
        #image = cv2.imread(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)
            # 二值化处理
            _, thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)
            # 将 OpenCV 图像转换为 PIL 图像
            pil_image = Image.fromarray(thresh)
            # 初始化新的Document实例
            doc = Document()
            # 进行图片文字识别
            text = pytesseract.image_to_string(pil_image,config='--oem 3 --psm 6 -l chi_sim')
            # 将识别出的文字添加到文档中
            doc.add_paragraph(text)
            # 保存生成的Word文档,使用不同的文件名
            doc.save(os.path.join(output_folder, f'{filename[:-4]}.docx'))

3、效果图

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

图片识别文字效果一般这个真没有其他办法,除非用腾讯云的OCR,除非有大神整个OCR第三方库出来

在这里插入图片描述


http://www.kler.cn/a/467198.html

相关文章:

  • 洛谷B4071 [GESP202412 五级] 武器强化
  • Java 数据库连接 - Sqlite
  • 解决openpyxl操纵带公式的excel或者csv之后,pandas无法读取数值的问题
  • 基于PHP+MySQL实现的web端借还书系统
  • android studio老版本下载教程
  • 【AI学习】Transformer深入学习(二):从MHA、MQA、GQA到MLA
  • 阿里云-通义灵码:在 PyCharm 中的强大助力(下)
  • 急需升级,D-Link 路由器漏洞被僵尸网络广泛用于 DDoS 攻击
  • GPIO、RCC库函数
  • 104周六复盘 (188)UI
  • perl包安装的CPAN大坑
  • SQL-【DDL+DML】
  • 30分钟学会HTML
  • vscode下载vetur和vue-helper插件之后删除键(backspace)失效
  • Java十六
  • 【Web】极简快速入门Vue 3
  • 05-spring-理-bean的生命周期
  • RuoYi-Vue从http升级为https(Jar+Nginx)
  • 金毛可以穷养吗?
  • GESP真题 | 2024年12月1级-编程题4《美丽数字》及答案(Python版)