python爬虫的实践

一、批量获取网页图片,并通过调用百度文字识别api,进行图片中的文字识别

1、批量获取网页图片

cookie登录、获取url状态码、新建文件夹

import requests
import os
import time

# 将需要请求的url放在一个数组里面
url_list = ["添加图片所在网页的url"]

# 由于网站本身安全性不高,先通过浏览器登录,将浏览器与服务器的身份识别“cookie和user-agent”复制出来,以便随着请求一并发过去,实现免密登录。
headers = {
    "cookie": "添加浏览器获取到的cookie指",
    "user-agent": "添加浏览器中的设备信息"
}
for url in url_list:
    # 发送请求
    resp = requests.get(url, headers=headers)
    # 确定网页字符集
    resp.encoding = 'utf-8'
    # 以json方式输出请求的内容
    dic = resp.json()
    # 获取图片的总数量
    count = dic['data']['count']
    # 获取课件名字
    title = dic['data']['title']
    # 将图片保存的路径赋值
    path = 'E:/小骗子/项目管理/'
    # 新建文件夹
    os.mkdir(path + title)
    for iit in range(0, count):
        # 获取没一张图片的下载地址
        srcUrl = dic['data']['slides'][iit]['Cover']
        # 获取url请求状态码
        resp = requests.get(srcUrl)
        status = resp.status_code
        # 判断图片下载请求是否成功
        if status == 200:
            # 如果成功,则获取图片的二进制
            img_resp = requests.get(srcUrl)
            img_resp.content
            # 保存图片
            # 注:由于图片名称使用的是数字,所以需要将数字转换为字符串
            with open("E:/小骗子/项目管理/" + title + "/" + str(iit) + ".jpg", mode="wb") as f:
                f.write(img_resp.content)  # 图片的内容写入到文件
            print(title, "over第", iit, "张")
        else:
            print(title, "over第", iit, "张获取失败")
            break
        time.sleep(1)
    print(title, "over", iit, "张")

2 调用百度文字识别api进行文字识别

import os
from aip import AipOcr

# 百度api的APP_ID、API_KEY、SECRET_KEY
APP_ID = '添加自己的app_id'
API_KEY = '添加自己的api_key'
SECRET_KEY = '添加自己的SECRET_KEY'
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
# 存放图片的文件夹名
file_name = ["0301", "资源管理", "范围管理", "项目管理"]
for file_url in file_name:
    # 存放图片的文件夹路径
    file = f"E:/小骗子/项目管理/{file_url}/"
    # 读入文件夹
    files = os.listdir(file)
    # 统计文件夹中的文件个数
    num_png = len(files)
    for count in range(0, num_png):
        # 获取文件夹中单个图片
        path = f"{file}{count}.jpg"
        # 调用百度文字识别api,进行图片中的文字识别
        with open(path, 'rb') as fp:
            image = fp.read()
        dic_result = client.basicGeneral(image)
        res = dic_result['words_result']
        result = ''
        for m in res:
            result += str(m['words'])

        # 新建一个txt文件,将识别到的文字写入到txt中
        fp2 = open(f'{file}{file_url}.txt', 'a', encoding='utf-8')
        fp2.write(f"---------------第{count}页------------------")
        # \n:指在换行符,\r\n:指两次换行
        fp2.write(f'\n{result}\r\n')
        print(f"已识别完成 {file_url}的第{count}张")

    fp2.close()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XL's妃妃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值