Python获取豆丁文档数据内容, 保存word文档

前言

嗨喽,大家好呀~这里是爱看美女的茜茜呐

开发环境:

  • python 3.8

  • pycharm

模块使用:

  • requests --> pip install requests

  • re

  • base64

  • docx --> pip install python-docx

第三方模块安装方法:

win + R 输入cmd 输入安装命令 pip install 模块名

(如果你觉得安装速度比较慢, 你可以切换国内镜像源)

准备工作

在写代码之前,你需要先在Baidu开发者平台申请权限,

步骤如下:

1. 登录百度智能云

  • 没有Baidu账号的注册一个;

  • 第一次进入会有这样一个页面,你自己随意填

2. 通过界面右上角进入控制台

3. 进入控制台后点击左上角的菜单栏

3. 选中产品服务

搜索人脸识别

4. 点击创建应用

应用名称随便填

接口选择默认

应用归属选个人

应用描述随便填

然后点击立即创建

5. 创建完毕后点击返回应用列表

重点点击领取免费资源

6. 进行实名认证后领取服务类型里面的所有内容

实名认证需要一定时间

7. 领取完毕之后回到应用列表

复制API Key和Secret Key里的内容,用于后期的接口认证


👇 👇 👇 更多精彩机密、教程,尽在下方,赶紧点击了解吧~

素材、视频教程、完整代码、插件安装教程我都准备好了,直接在文末名片自取就可


代码实现步骤

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

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

  3. 解析数据, 提取我们需要的内容:

    sid参数 / 文档页数 / 文档名称

    构建文档图片链接

  4. 保存数据, 把文档图片内容保存下来

代码展示

# 导入数据请求模块
import requests
# 导入正则模块
import re
import base64
from docx import Documentdoc = Document()def Content(content):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']'''通用文字识别(高精度版)'''request_url = "https://****/rest/2.0/ocr/v1/accurate_basic"# 二进制方式打开图片文件# f = open('img\\1 计算机概述1.jpg', 'rb')img = base64.b64encode(content)params = {"image":img}request_url = request_url + "?access_token=" + access_tokenheaders = {'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)# 模拟浏览器 --> 字典数据类型 --> 键:值
headers = {# User-Agent 用户代理 表示浏览器基本身份信息'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'
}
# 请求链接
url = 'https://****/p-3282300896.html'
# 发送请求
response = requests.get(url=url, headers=headers)# 获取网页数据
html_data = response.text
# 提取sid参数
sid = re.findall('flash_param_hzq:"(.*?)",', html_data)[0]
# 提取名字
name = re.findall('productName:"(.*?)",', html_data)[0]
# 提取页码
num = re.findall('<em>(\d+)</em></span>', html_data)[0]
# 构建完整图片链接
content_list = []
for page in range(1, int(num)+1):# 字符串格式化方法img = f'http://221.122.117.73/docinpic.jsp?sid={sid}&file=3282300896&width=942&pageno={page}'# 发送请求, 获取二进制数据<图片内容>img_content = requests.get(url=img, headers=headers).contentwords = Content(img_content)doc.add_paragraph(words)doc.save(f'{name}.docx')

正则表达式提取数据内容

  • re.findall(‘数据’, ‘地方’) 调用re模块里面findall方法

    查找所有我们需要的数据内容

尾语

感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

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

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/17825.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软考A计划-系统集成项目管理工程师-项目进度管理-下

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff…

基于单片机停车场刷卡收费的设计与实现

功能介绍 以51单片机作为主控系统&#xff1b;通过液晶显示当前时间&#xff0c;车位、剩余车位、时间等信息&#xff1b;进电机正反转表示开关门&#xff1b;按键可以设置当前时间/单价/分钟&#xff1b;RC522射频卡识别&#xff0c;当刷卡后模拟汽车驶入&#xff0c;开始收费…

路径规划算法:基于爬行动物优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于爬行动物优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于爬行动物优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化…

计算机体系结构基础知识介绍之缓存性能的十大进阶优化之小型且简单的一级缓存(二)

缓存是一种高速的存储器&#xff0c;用于存放处理器经常访问的数据和指令。缓存的组织方式有多种&#xff0c;其中一种是按照不同的关联度(associativity)来划分。关联度表示一个缓存块(block)可以放在缓存中的位置数。关联度越高&#xff0c;缓存中可以容纳的不同块的数量越多…

Spring的事务隔离

随着应用程序复杂性的增加&#xff0c;数据库的并发读写需求也越来越高。对于一个电商平台而言&#xff0c;每天都会有数十万笔的交易数据需要处理&#xff0c;这就需要能够高效地处理并发事务。Spring作为一个强大的应用框架&#xff0c;提供了事务管理的功能&#xff0c;可以…

Kafka入门, Kafka-Kraft 模式 部署(二十六)

Kafka-Kraft 模式 左图为kafka现有架构&#xff0c;元数据在zookeeper中&#xff0c;运行时动态选举controller,由controller进行kafka集群管理&#xff0c;右图为kraft模式架构&#xff08;实验性&#xff09;&#xff0c;不再依赖zookeeper集群&#xff0c;而是用三台control…

投票评选活动小程序v2-搜索功能和最新排序功能实现

投票评选活动小程序-搜索功能和最新排序功能实现 优秀人物评选活动&#xff0c;五四奖章评选、优秀工作者人物评选、劳动最光荣评选。通常需要一个搜索功能&#xff0c;用户通过输入名称或编号搜索对应的作品项目或者人物&#xff0c;进行投票。或者通过最新排序功能查看列表情…

基于分时电价策略的家庭能量系统优化(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

IoT开发者为王,涂鸦智能硬核“靠边站”

文 | 智能相对论 作者 | 沈浪 6月底&#xff0c;全球化IoT开发平台服务商涂鸦智能开了个TUYA开发者大会&#xff0c;面向行业传达了两个关键的信息点&#xff1a; 1. 当前IoT领域的行业竞争不再局限于技术、渠道的单一纬度&#xff0c;开始演化为整体的生态之争。 2. 紧随行…

iview-admin前后台分离管理系统

加油&#xff0c;新时代打工人&#xff01; layui已淘汰&#xff0c;下面介绍vue管理后台系统&#xff0c;当然市场上不止下面一种框架。 layuimini后台管理系统的简单使用 iview-admin是iview生态圈的成员之一。是一套基于 Vue.js&#xff0c;搭配ivew UI(https://www.iviewu…

【ELK 企业级日志分析系统】

目录 一、ELK 概述1、ELK 简介1、可以添加的其它组件&#xff1a;2、filebeat 结合 logstash 带来好处&#xff1a; 2、为什么要使用 ELK3、完整日志系统基本特征4、ELK 的工作原理 二、实验操作1、ELK Elasticsearch 集群部署&#xff08;在Node1、Node2节点上操作&#xff09…

配置通过域名访问网站(NETBASE第七课)

1 DNS服务器 域名系统_百度百科 域名和与之相对应的IP地址转换的服务器 DNS&#xff08;Domain Name Server&#xff0c;域名服务器&#xff09;是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器。DNS中保存了一张域名(domain name)和与之相对应的IP地…