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

Python实现某du文库vip内容下载,保存成PDF

前言

是谁,是谁在网页上搜索往年考试卷题+答案的时候只能阅读前两页的选择题,是谁在搜几千字的文档资料只能看25%,是谁在百度文库找七找八的时候所有的东西都要付费才能继续看…

我先说 是我自己

我又不经常用,只有偶尔需要看看,还要我掏钱包,我说不行,绝对不行

什么都行 谈钱不行

咱没钱,咱有技术,直接让python帮我

今天就来分享下 👇

用Python实现某du文库vip内容下载, 保存到word文档

前期准备

环境使用

  • python 3.8
  • pycharm

模块使用

  • requests >>> 数据请求模块 pip install requests
  • docx >>> 文档保存 pip install python-docx
  • re 内置模块 不需要安装
  • ctrl + R 爬虫: 首先你得看得数据, 才能想办法获取

代码实现步骤

  1. 发送请求, 模拟浏览器对于url地址发送请求图片数据包:

  2. 获取数据, 获取服务器返回响应数据
    开发者工具: response

  3. 解析数据, 提取图片链接地址

  4. 保存数据, 把图片内容保存到本地文件夹

  5. 做文字识别, 识别文字内容

  6. 把文字数据信息, 保存word文档里面

导入数据请求模块 import requests
导入格式化输出模块 from pprint import pprint
导入base64 import base64
导入os模块 import os
导入文档模块 from docx import Document
导入正则 import re
导入 json import json

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

  • 长链接, 可以分段写
  • 问号前面: url链接
  • 问号后面: 请求参数/查询参数

源码.点击.领取.即可

# 确定请求链接
url = 'https://*****.com/gsearch/rec/pcviewdocrec'# 请求参数data = {'docId': docId,'query': name,'recPositions': ''}# 请求头headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'}#发送请求response = requests.get(url=url, params=data, headers=headers)# <Response [200]> 响应对象, 200 表示请求成功print(response)

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

开发者工具: response

sponse.json() 获取响应json字典数据, 但是返回数据必须是完整json数据格式 花括号 {}
esponse.text 获取响应文本数据, 返回字符串  任何时候都可以, 但是基本获取网页源代码的时候
response.content 获取响应二进制数据, 返回字节 保存图片/音频/视频/特定格式文件print(response.json())  打印字典数据, 呈现一行
pprint(response.json()) 打印字典数据, 呈现多行, 展开效果

3. 解析数据, 提取图片链接地址

字典取值: 键值对 根据冒号左边内容[键], 提取冒号右边的内容[值]

# 定义文件名 整型
num = 1
# for循环遍历, 把列表里面元素一个一个提取出来
for index in response.json()['data']['relateDoc']:# index 字典呀pic = index['pic']print(pic)

4. 保存数据 发送请求 + 获取数据 二进制数据内容

# img_content = requests.get(url=pic, headers=headers).content
# # 'img\\'<文件夹名字> + str(num)<文件名> + '.jpg'<文件后缀>  mode='wb' 保存方式, 二进制保存
# # str(num) 强制转换成 字符串
# # '图片\\' 相对路径, 相对于你代码的路径 你代码在那个地方, 那个代码所在地方图片文件夹
# with open('图片\\' + str(num) + '.jpg', mode='wb') as f:
#     # 写入数据 保存数据  把图片二进制数据保存
#     f.write(img_content)
# # 每次循环 + 1
# print(num)
# num += 1

5. 做文字识别, 识别文字内容

文字识别:

  • 注册一个百度云API账号
  • 创建应用 并且去免费领取资源
  • 在技术文档里面 Access Token获取
  • 调用API接口做文字识别
python学习交流Q群:690643772 ### 源码领取
def get_content(file):# client_id 为官网获取的AK, client_secret 为官网获取的SKhost = 'https://*****comp'response = requests.get(host)access_token = response.json()['access_token']'''通用文字识别(高精度版)'''request_url = "https://********.com/rest/2.0/ocr/v1/accurate_basic"# 二进制方式打开图片文件f = open(file, 'rb')img = base64.b64encode(f.read())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 = '\n'.join([i['words'] for i in json_data['words_result']])return words
  • 读取文件夹里面所有图片内容
content_list = []
files = os.listdir('img\\')
for file in files:
filename = 'img\\' + file
words = get_content(file=filename)
print(words)
content_list.append(words)

6. 把文字数据信息, 保存word文档里面

  • 保存word文档里面
doc = Document()
  • 添加第一段文档内容
content = '\n'.join(content_list)
doc.add_paragraph(content)
doc.save('data.docx')

最后

今天的分享到这里就结束了 有问题的宝子可以评论区留言,或者点击末尾名片进行交流学习哦

在这里插入图片描述

相关文章:

Python实现某du文库vip内容下载,保存成PDF

前言 是谁&#xff0c;是谁在网页上搜索往年考试卷题答案的时候只能阅读前两页的选择题&#xff0c;是谁在搜几千字的文档资料只能看25%&#xff0c;是谁在百度文库找七找八的时候所有的东西都要付费才能继续看… 我先说 是我自己 我又不经常用&#xff0c;只有偶尔需要看看…...

vue3.0 模板语法

文章目录前言&#xff1a;1. 内容渲染指令1.1 v-text1.2 {{ }}插值表达式1.3 v-html2. 双向绑定指令2.1 v-model2.2 v-model的修饰符3. 属性绑定指令3.1 动态绑定多个属性值3.2 绑定class和style属性4.条件渲染指令4.1 v-if、v-else-if、v-else4.2 v-show4.3 v-if与v-show的区别…...

【GlobalMapper精品教程】054:标签(标注)功能案例详解

同ArcGIS标注一样,globalmapper提供了动态标注的功能,称为标签,本文详解标签的使用方法。 文章目录 一、标签配置二、创建标签图层三、标签图层选项1. 标签字段2. 标签样式3. 标签格式4. 标签语言5. 标签优先级一、标签配置 在配置页面的【矢量显示】→标签选项卡下,有标签…...

超详细树状数组讲解(+例题:动态求连续区间和)

树状数组的作用&#xff1a;快速的对数列的一段范围求和快速的修改数列的某一个数为什么要使用树状数组&#xff1a;大家从作用中看到快速求和的时候可能会想到为什么不使用前缀和只需要预处理一下就可以在O(1)的时间复杂度下实行对于数列的一段范围的和但是我们可以得到当我们…...

【学习笔记】AGC055

A - ABC Identity 如果只有AAA,BBB两种字符的话&#xff0c;我们发现要寻找p∈[1,n]p\in [1,n]p∈[1,n]&#xff0c;使得[1:p][1:p][1:p]中AAA的数目与[p1:n][p1:n][p1:n]中BBB的数目相同。 如果有A,B,CA,B,CA,B,C三种字符&#xff0c;我们可以先将A,BA,BA,B分离出来&#xf…...

墨者——内部文件上传系统漏洞分析溯源 内部文件上传系统漏洞分析溯源

墨者——内部文件上传系统漏洞分析溯源 内部文件上传系统漏洞分析溯源 1.选择合适的文件上传 2.可以看到为*.asp文件 3.可以推测出此站点为IIS 4.上传shell.asp试试 5.上传报错&#xff0c;将其改名为shell.asp.txt上传&#xff0c;发现上传成功 6.有个问题就是服务器将我们所…...

5.2 Python if语句

5.2.3 检查是否不相等要判断两个值是否不等&#xff0c;可结合使用惊叹号和等号(!)&#xff0c;其中的惊叹号表示不&#xff0c;在很多编程语言中都如此。下面再使用一条if语句来演示如何使用不等运算符。我们将把要求的比萨配料存储在一个变量中&#xff0c;再打印一条消息&am…...

ubuntu gerrit 配置

1 - 简介 参考地址: https://www.cnblogs.com/anliven/p/12019974.html https://www.cnblogs.com/anliven/p/11980432.html 虽然Gerrit 本身提供 Code Review和 Git 仓库的两大功能,但实际上很多项目用的是其他的Git仓库,例如GitLab和GitHub。 一般情况下,Gerrit位于最终…...

运动蓝牙耳机什么牌子好,运动蓝牙耳机品牌推荐

现在市面上运动耳机的品牌越来越多&#xff0c;还不知道选择哪一些运动耳机品牌&#xff0c;可以看看下面的一些耳机分享&#xff0c;运动耳机需要注意耳机的参数配置以及佩戴舒适度&#xff0c;根据自己最根本的使用需求来选择运动耳机。 1、南卡Runner Pro4骨传导蓝牙运动耳…...

(7)C#传智:方法及参数、重载(第7天)

一、方法作用域 被调用者需要调用者的值,方法有二: 1.传参数. private static void Main(string[] args){int m 3;Console.WriteLine(m);Console.ReadKey();}public static int GetMax(int m){return m 3;} 2.使用静态字段模拟全局. 多个方法都需要时&#x…...

Python 函数式编程

函数式编程&#xff1a;允许把函数本身作为参数传入另一个函数&#xff0c;还允许返回一个函数&#xff01; 1.高阶函数 一个函数可以接收另一个函数作为参数&#xff0c;这种函数称之为高阶函数 abs(-10) 是函数调用 abs是函数本身 abs函数名其实是一个变量名 变量可以…...

pandas读取EXCEL列名重复问题解决——pandas设置多行为列名(多层列名)

问题呈现 这是我在问答区看到的一个问题。 问&#xff1a;在python中使用pandas读取Excel数据&#xff0c;重复数据被区分了&#xff0c;如何做到重复数据不被区分&#xff1f; 解决思路 很明显&#xff0c;这是pandas读取excel文件时列名设置问题&#xff0c;我第一时间想…...

CMake常用语法

1. cmake_minimum_required(VERSION 3.4.1) 指定需要的最小的cmake版本 2. aux_source_directory 查找源文件并保存到相应的变量中: #查找当前目录下所有源文件并保存至SRC_LIST变量中 aux_source_directory(. SRC_LIST)3. add_library 3.1 添加一个库 add_library(<n…...

Java知识复习(一)基础知识

1、什么是JVM、JDK和JRE&#xff1f; JVM是指运行Java字节码的虚拟机。而字节码文件指的就是扩展名为.class的文件&#xff0c;JDK指功能齐全的Java SDK&#xff0c;能够创建和编译程序JRE指Java运行的环境&#xff0c;包括JVM、类库和命令等 2、重载和重写的主要区别 重载&…...

springboot+vue.js校园车辆用车预约管理系统

springboot是基于spring的快速开发框架, 相比于原生的spring而言, 它通过大量的java config来避免了大量的xml文件, 只需要简单的生成器便能生成一个可以运行的javaweb项目, 是目前最火热的java开发框架 前端技术&#xff1a;nodejsvueelementui本项目的应用场景描述如下&…...

【 K8s 源码之调度学习】Pod 间亲和性和反亲和性的源码分析

查看案例 字段含义podAffinityPod 间的亲和性定义podAntiAffinityPod 间的反亲和性定义requiredDuringSchedulingIgnoredDuringExecution硬性要求&#xff0c;必须满足条件&#xff0c;保证分散部署的效果最好使用用此方式preferredDuringSchedulingIgnoredDuringExecution软性…...

计及绿证交易及碳排放的含智能楼宇微网优化调度(Matlab代码实现)

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

场景扩展,体验升级 | DBMotion新增无公网数据库迁移、支持监控报警等多项功能

丝滑的零停机数据库在线迁移工具——DBMotion&#xff0c;又双叒叕发新版&#xff1a;新增的网关、数据源功能&#xff0c;让你无公网IP的数据库也可以迁移&#xff1b;新增的监控功能&#xff0c;让你对迁移性能一目了然&#xff1b;新增的报警功能&#xff0c;让你及时获得同…...

【正点原子FPGA连载】第十五章eMMC读写测试实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

1&#xff09;实验平台&#xff1a;正点原子MPSoC开发板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id692450874670 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第十五章eMMC读写…...

i2c子系统

i2c 硬件协议 Linux 应用层读写i2c 数据 在Linux系统上&#xff0c;不仅可以在内核中使用 i2c 总线发送、接收数据&#xff0c;同时也支持应用层使用i2c 总线发送、接收。 如果在内核中使能了drivers/i2c/i2c-dev.c 配置&#xff0c;内核就会为每一个i2c 控制器生成一个/dev/…...

【下载安装教程】仿宋GB2312、楷体GB2312和方正小标宋简体办公字体安装包下载安装教程

常用办公字体安装与使用指南 适用字体及场景 字体名称适用场景仿宋_GB2312正文内容、正式文档楷体_GB2312批注、说明性文字方正小标宋简体标题、封面文字、强调性内容 支持软件 WPSMicrosoft WordPowerPoint其他主流办公软件 使用方法 安装字体 下载字体文件&#xff08;.…...

146台储罐+10台喷淋塔,新能源项目为什么认准PPH?

在新能源材料项目的设备选型中&#xff0c;PPH正逐渐变成大多数厂家选择的一种材质。 最近美联新材料的新能源产业化项目&#xff0c;一口气向吉庆订了146台PPH贮罐、10台PPH喷淋塔&#xff0c;今天就借着这个真实项目&#xff0c;来聊一聊&#xff0c;PPH为什么能成成新能源项…...

主产区安全整改深化 行业加速洗牌(5 月 21 日)

1.湖南浏阳等产区开展全覆盖排查&#xff0c;重点整治违规库存、超量存放、追溯缺失等问题。 2.中小零售点面临搬迁 / 关停&#xff0c;合规化与信息化追溯成生存门槛。 3.海外市场&#xff1a;美国堪萨斯城皇家队赛事烟花秀&#xff08;5 月 22 日&#xff09;&#xff0c;赛事…...

5G通信实战:手把手教你用Vivado LDPC IP核配置编码参数(附避坑指南)

5G通信实战&#xff1a;FPGA开发中的LDPC编解码参数配置全解析 在5G通信系统的开发过程中&#xff0c;LDPC&#xff08;低密度奇偶校验&#xff09;码作为物理层的关键技术之一&#xff0c;其实现质量直接影响着系统的传输性能和可靠性。对于使用Xilinx FPGA进行5G基带开发的工…...

AI 超声波口罩机智能功率 MOSFET 完整选型方案

随着 AI 视觉检测与自适应控制技术深度集成&#xff0c;现代超声波口罩机对功率 MOSFET 提出更高要求&#xff1a;高频谐振效率、低损耗长寿命、高可靠精密驱动。微碧半导体&#xff08;VBsemi&#xff09;基于先进 SGT 及 Trench 工艺&#xff0c;为您提供覆盖超声波发生器、传…...

AI-auth-toolkit社区贡献指南:从入门到核心开发者

AI-auth-toolkit社区贡献指南&#xff1a;从入门到核心开发者 【免费下载链接】genai-compliance-bench GenAI compliance benchmark is a evaluation benchmarks for generative AI in regulated industries. 项目地址: https://gitcode.com/gh_mirrors/ai/genai-compliance…...

百度网盘提取码智能查询工具:3分钟掌握资源密码自动获取技巧

百度网盘提取码智能查询工具&#xff1a;3分钟掌握资源密码自动获取技巧 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 还在为百度网盘分享链接的提取码而烦恼吗&#xff1f;每次找到心仪的资源却卡在密码输入环节&#xff0…...

【DeepSeek架构演进倒计时】:K8s 1.30+废弃Dockershim后,容器运行时迁移至containerd+Podman的6小时无感切换方案

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;DeepSeek微服务架构演进的背景与战略意义 随着DeepSeek大模型训练规模持续扩大、推理服务调用量激增&#xff0c;单体架构在弹性伸缩、故障隔离、团队协作和灰度发布等方面日益暴露出瓶颈。传统单体服务…...

服务通信模式选择完全指南

服务通信模式选择完全指南 前言 在微服务架构中&#xff0c;服务间通信是核心基础设施之一。选择合适的通信模式直接影响系统的性能、可靠性和可维护性。本文将详细介绍同步通信和异步通信的各种模式&#xff0c;以及如何根据业务场景做出最佳选择。 一、服务通信概述 1.1 通信…...

ChanlunX:为通达信注入缠论智能分析引擎

ChanlunX&#xff1a;为通达信注入缠论智能分析引擎 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX 在技术分析领域&#xff0c;缠论以其严谨的逻辑体系和独特的市场结构认知而备受推崇。然而&#xff0c…...