Python教你如何免费获取付费文档的数据, 保存word文档

前言

嗨喽~大家好呀,这里是小曼呐 ❤ ~!
在这里插入图片描述

开发环境:

  • python 3.8
  • pycharm

模块使用:

  • requests --> pip install requests
  • re
  • json
  • time
  • base64
  • docx --> pip install python-docx

第三方模块安装:

win + R 输入cmd 输入安装命令 pip install 模块名 (如果你觉得安装速度比较慢, 你可以切换(国内镜像源)

代码实现步骤:

1.发送请求, 模拟浏览器对于url地址发送请求

2.获取数据, 获取服务器返回响应数据

3.解析数据, 提取我们需要的内容 --> 图片链接

4.保存数据, 把图片内容保存

5.文字识别, 提取文字内容

6.文字写入word文档

代码展示

# 导入数据请求模块
import requests
# 导入正则表达式
import re
# 导入json
import json
# 导入时间模块
import time
import base64
import docx
"""
文字识别:
    百度云API接口 --> 免费领取资源的
    1. 注册登陆
    2. 选择文字识别
    3. 创建应用 领取资源
    4. 进入API文档
        - 获取token
        - 复制API代码
"""
doc = docx.Document()


def Content(content):
    """
    :param content: 图片二进制数据
    :return:
    """
    url = "https://****/oauth/2.0/token?grant_type=client_credentials&client_id=xxxx&client_secret=xxxx"
    payload = ""
    headers = {
        'Content-Type': 'application/json',
        'Accept': 'application/json'
    }
    response = requests.request("POST", url, headers=headers, data=payload)
    access_token = response.json()['access_token']
    print(access_token)
    '''
    通用文字识别(高精度版)
    '''
    request_url = "https://a****/rest/2.0/ocr/v1/accurate_basic"
    img = base64.b64encode(content)
    params = {"image":img}
    request_url = request_url + "?access_token=" + access_token
    headers = {'content-type': 'application/x-www-form-urlencoded'}
    json_data = requests.post(request_url, data=params, headers=headers).json()
    words_result = '\n'.join([i['words'] for i in json_data['words_result']])
    print(words_result)
    return words_result




"""
1. 发送请求, 模拟浏览器对于url地址发送请求
"""
# 模拟浏览器 --> 请求头, 直接复制
headers = {
    # 完整源码、解答、教程皆+VX:python10080 记得验证备注M
    'Cookie': 'CLIENT_SYS_UN_ID=3rvhLGQlZ5CsGW2eHpmuAg==; __yjs_duid=1_0ce66bf3ca7c2306ce5da72ade1b4ba11685945826433; s_v=cdh%3D%3E27a30245%7C%7C%7Cvid%3D%3E1685945827928042385%7C%7C%7Cfsts%3D%3E1685945827%7C%7C%7Cdsfs%3D%3E25%7C%7C%7Cnps%3D%3E2; s_rfd=cdh%3D%3E27a30245%7C%7C%7Ctrd%3D%3Emax.book118.com%7C%7C%7Cftrd%3D%3Ebook118.com; s_s=cdh%3D%3E27a30245%7C%7C%7Clast_req%3D%3E1688127125%7C%7C%7Csid%3D%3E1688124093504555434%7C%7C%7Cdsps%3D%3E25',
    'Host': 'openapi.book118.com',
    'Pragma': 'no-cache',
    'Referer': 'https://*****/',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',
}
for page in range(1, 14, 6):
    time.sleep(2)
    # 请求链接
    url = '***/getPreview.html'
    # 请求参数 --> 缩进 tab 取消缩进 shift+tab 复制当前行crtl + D
    data = {
        'project_id': '1',
        'aid': '569535184',
        't': '8684559560dd49bd42aeb2e85b6d6f06',
        'view_token': 'qKyQHm9Lw@hAGeaC16lOgvTEUQeFscw1',
        'page': page,
        'filetype': 'docx',
        # 'callback': 'jQuery183015452790725275278_1688127062003',
        '_': '1688127520232',
    }
    # 发送请求
    response = requests.get(url, params=data, headers=headers)
    """
    2. 获取数据, 获取服务器返回响应数据
        response.text 获取响应的文本数据
    3. 解析数据, 提取我们需要的内容 --> 图片链接
        re.findall('数据', '地方') 找到所有数据
            从什么地方, 去匹配找寻什么数据
        re.findall('jsonpReturn\((.*?)\)', response.text)
        \ 转义字符, 把含有特殊意义字符,转义成本身以外, 不含有其他特殊意义
        () 精确匹配
        .*? --> 可以匹配任意字符串 除了\n换行符
        正则匹配的数据, 返回列表

    """
    html_data = re.findall('jsonpReturn\((.*?)\)', response.text)[0]
    # 转成字典数据
    json_data = json.loads(html_data)
    for link in json_data['data'].values():
        link = 'https:' + link
        # 有时候加伪装可能还不到数据 <请求头参数加多了>
        img = requests.get(link).content
        words = Content(img).replace('原创力文档', '').replace('max.book118.com', '').replace('下载高清无水印', '')
        print(words)
        # 写入内容
        doc.add_paragraph(words)

doc.save('大学生电子商务实习报告.docx')

尾语
感谢你观看我的文章呐~

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

学无止境,期待你变成更好的自己。(让我们一起努力叭)。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值