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文档

python资料、源码、教程\福利皆: 点击此处跳转文末名片获取

代码展示

# 导入数据请求模块
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://aip.baidubce.com/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://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic"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)return words_result"""
1. 发送请求, 模拟浏览器对于url地址发送请求
"""
# 模拟浏览器 --> 请求头, 直接复制
headers = {# 完整源码、解答、教程皆+VX:Python5180 记得验证备注AAA'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 = 'https://openapi.book118.com/getPreview.html'# 请求参数 --> 缩进 tab 取消缩进 shift+tab 复制当前行crtl + Ddata = {'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).contentwords = Content(img).replace('原创力文档', '').replace('max.book118.com', '').replace('下载高清无水印', '')print(words)# 写入内容doc.add_paragraph(words)doc.save('大学生电子商务实习报告.docx')

尾语

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

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

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

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

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

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

相关文章

5.4、docker-compose

h ttps://www.runoob.com/docker/docker-compose.html Docker Compose docker-compose.yml 配置文件编写详解_docker-compose.yml 编写_种子选手的博客-CSDN博客 docker-compose.yml 配置文件编写详解 1.dockerfile: 构建镜像&#xff1b; 2.docker run: 启动容器&#xff1b;…

哈工大计算机网络课程网络层协议详解之:互联网控制报文协议(ICMP)

哈工大计算机网络课程网络层协议详解之&#xff1a;互联网控制报文协议&#xff08;ICMP&#xff09; 在互联网中&#xff0c;IP数据报的传输很容易出现差错&#xff0c;当出现差错时&#xff0c;最简单的处理办法就是对该IP数据报进行丢弃。但是&#xff0c;并不是直接丢弃就…

视频与AI,与进程交互(二) pytorch 极简训练自己的数据集并识别

目标学习任务 检测出已经分割出的图像的分类 2 使用pytorch pytorch 非常简单就可以做到训练和加载 2.1 准备数据 如上图所示&#xff0c;用来训练的文件放在了train中&#xff0c;验证的文件放在val中&#xff0c;train.txt 和 val.txt 分别放文件名称和分类类别&#xff…

Redis之数据类型String、List、Hash、Set、Sorted Set(详细)

一、String数据类型 1、SET/GET/APPEND/STRLEN &#xff08;1&#xff09; APPEND &#xff08;2&#xff09; SET/STRLEN 2、 INCR/ DECR/INCRBY/DECRBY &#xff08;1&#xff09;INCR/ DECR &#xff08;2&#xff09; INCRBY/DECRBY INCRBY key increment&#xff1…

selenium通过xpath定位text换行的元素

DOM元素&#xff08;该元素是换行的&#xff0c;不能通过普通xpath定位&#xff09;&#xff1a; 可使用下面xpath定位该div //div[./text()/following-sibling::text()"点" and ./text()"5"] 解释一下就是&#xff1a;定位“子节点的text是[5] 且 子节点…

【Java项目】解决请求路径上明文ID传输导致可能被攻击的方法

文章目录 问题思路解决 问题 这个问题是我公司的一个小业务问题&#xff0c;问题来源于我们发送请求的时候&#xff0c;请求路径上携带的是明文&#xff0c;比如http://xxx/xxx/id12345&#xff0c;那么别有用心的人就可能会推测出id的生成策略&#xff0c;导致遍历id&#xf…

Qt编写视频监控系统79-四种界面导航栏的设计

一、前言 最初视频监控系统按照二级菜单的设计思路&#xff0c;顶部标题栏一级菜单&#xff0c;左侧对应二级菜单&#xff0c;最初采用图片在上面&#xff0c;文字在下面的按钮方式展示&#xff0c;随着功能的增加&#xff0c;二级菜单越来越多&#xff0c;如果都是这个图文上…

数据库表的操作

目录 前言 1.创建表 2.查看表 2.1查看表结构 2.2查看表中插入的数据 3.修改表 4.删除表 总结 前言 前面已经介绍了对数据库的操作&#xff0c;今天我们介绍的是数据库表的操作&#xff0c;数据库表简单可以理解为存储数据的介质。有了这个认识之后&#xff0c;下面我们…

21.RocketMQ源码之NameServer的路由管理和架构设计

highlight: arduino-light NameServer 路由管理 Broker消息服务器在启动的时向所有NameServer注册。 消息生产者Producer在发送消息之前先从NameServer获取Broker服务器地址列表然后根据负载均衡算法从列表中选择一台服务器进行发送。 NameServer与每台Broker保持长连接&#x…

如何在Microsoft Excel中快速筛选数据

你通常如何在 Excel 中进行筛选?在大多数情况下,通过使用自动筛选,以及在更复杂的场景中使用高级过滤器。 使用自动筛选或 Excel 中的内置比较运算符(如“大于”和“前10项”)来显示所需数据并隐藏其余数据。筛选单元格或表范围中的数据后,可以重新应用筛选器以获取最新…

移动端微信小程序学习

目录 小程序和web端的不同 小程序的宿主环境 通信 组件 视图容器​编辑 text组件 button image ​编辑 API api三大分类 模板语法 事件绑定 ​编辑 事件传参​编辑 bindinput 条件渲染 列表渲染 ​编辑 全局配置 window 页面配置 网络数据请求 ​编辑 GET请求 POST…

从电源 LED 读取智能手机的秘密?

研究人员设计了一种新的攻击方法&#xff0c;通过记录读卡器或智能手机打开时的电源 LED&#xff0c;使用 iPhone 摄像头或商业监控系统恢复存储在智能卡和智能手机中的加密密钥。 众所周知&#xff0c;这是一种侧信道攻击。 通过密切监视功耗、声音、电磁辐射或执行操作所需…