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 爬虫: 首先你得看得数据, 才能想办法获取
代码实现步骤
-
发送请求, 模拟浏览器对于url地址发送请求图片数据包:
-
获取数据, 获取服务器返回响应数据
开发者工具: response -
解析数据, 提取图片链接地址
-
保存数据, 把图片内容保存到本地文件夹
-
做文字识别, 识别文字内容
-
把文字数据信息, 保存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
前言 是谁,是谁在网页上搜索往年考试卷题答案的时候只能阅读前两页的选择题,是谁在搜几千字的文档资料只能看25%,是谁在百度文库找七找八的时候所有的东西都要付费才能继续看… 我先说 是我自己 我又不经常用,只有偶尔需要看看…...
vue3.0 模板语法
文章目录前言: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. 标签优先级一、标签配置 在配置页面的【矢量显示】→标签选项卡下,有标签…...
超详细树状数组讲解(+例题:动态求连续区间和)
树状数组的作用:快速的对数列的一段范围求和快速的修改数列的某一个数为什么要使用树状数组:大家从作用中看到快速求和的时候可能会想到为什么不使用前缀和只需要预处理一下就可以在O(1)的时间复杂度下实行对于数列的一段范围的和但是我们可以得到当我们…...
【学习笔记】AGC055
A - ABC Identity 如果只有AAA,BBB两种字符的话,我们发现要寻找p∈[1,n]p\in [1,n]p∈[1,n],使得[1:p][1:p][1:p]中AAA的数目与[p1:n][p1:n][p1:n]中BBB的数目相同。 如果有A,B,CA,B,CA,B,C三种字符,我们可以先将A,BA,BA,B分离出来…...
墨者——内部文件上传系统漏洞分析溯源 内部文件上传系统漏洞分析溯源
墨者——内部文件上传系统漏洞分析溯源 内部文件上传系统漏洞分析溯源 1.选择合适的文件上传 2.可以看到为*.asp文件 3.可以推测出此站点为IIS 4.上传shell.asp试试 5.上传报错,将其改名为shell.asp.txt上传,发现上传成功 6.有个问题就是服务器将我们所…...
5.2 Python if语句
5.2.3 检查是否不相等要判断两个值是否不等,可结合使用惊叹号和等号(!),其中的惊叹号表示不,在很多编程语言中都如此。下面再使用一条if语句来演示如何使用不等运算符。我们将把要求的比萨配料存储在一个变量中,再打印一条消息&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位于最终…...
运动蓝牙耳机什么牌子好,运动蓝牙耳机品牌推荐
现在市面上运动耳机的品牌越来越多,还不知道选择哪一些运动耳机品牌,可以看看下面的一些耳机分享,运动耳机需要注意耳机的参数配置以及佩戴舒适度,根据自己最根本的使用需求来选择运动耳机。 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 函数式编程
函数式编程:允许把函数本身作为参数传入另一个函数,还允许返回一个函数! 1.高阶函数 一个函数可以接收另一个函数作为参数,这种函数称之为高阶函数 abs(-10) 是函数调用 abs是函数本身 abs函数名其实是一个变量名 变量可以…...
pandas读取EXCEL列名重复问题解决——pandas设置多行为列名(多层列名)
问题呈现 这是我在问答区看到的一个问题。 问:在python中使用pandas读取Excel数据,重复数据被区分了,如何做到重复数据不被区分? 解决思路 很明显,这是pandas读取excel文件时列名设置问题,我第一时间想…...
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? JVM是指运行Java字节码的虚拟机。而字节码文件指的就是扩展名为.class的文件,JDK指功能齐全的Java SDK,能够创建和编译程序JRE指Java运行的环境,包括JVM、类库和命令等 2、重载和重写的主要区别 重载&…...
springboot+vue.js校园车辆用车预约管理系统
springboot是基于spring的快速开发框架, 相比于原生的spring而言, 它通过大量的java config来避免了大量的xml文件, 只需要简单的生成器便能生成一个可以运行的javaweb项目, 是目前最火热的java开发框架 前端技术:nodejsvueelementui本项目的应用场景描述如下&…...
【 K8s 源码之调度学习】Pod 间亲和性和反亲和性的源码分析
查看案例 字段含义podAffinityPod 间的亲和性定义podAntiAffinityPod 间的反亲和性定义requiredDuringSchedulingIgnoredDuringExecution硬性要求,必须满足条件,保证分散部署的效果最好使用用此方式preferredDuringSchedulingIgnoredDuringExecution软性…...
计及绿证交易及碳排放的含智能楼宇微网优化调度(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
场景扩展,体验升级 | DBMotion新增无公网数据库迁移、支持监控报警等多项功能
丝滑的零停机数据库在线迁移工具——DBMotion,又双叒叕发新版:新增的网关、数据源功能,让你无公网IP的数据库也可以迁移;新增的监控功能,让你对迁移性能一目了然;新增的报警功能,让你及时获得同…...
【正点原子FPGA连载】第十五章eMMC读写测试实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南
1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id692450874670 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html 第十五章eMMC读写…...
i2c子系统
i2c 硬件协议 Linux 应用层读写i2c 数据 在Linux系统上,不仅可以在内核中使用 i2c 总线发送、接收数据,同时也支持应用层使用i2c 总线发送、接收。 如果在内核中使能了drivers/i2c/i2c-dev.c 配置,内核就会为每一个i2c 控制器生成一个/dev/…...
SEO优化中关键词的作用是什么_关键词布局对SEO有什么影响
SEO优化中关键词的作用是什么 在现代网络营销中,SEO(搜索引擎优化)是提升网站在搜索引擎结果中排名的重要手段。其中,关键词的作用至关重要。关键词不仅是搜索引擎理解用户意图的重要载体,也是搜索引擎算法评估网站相…...
手机号码智能定位系统:从技术原理到行业实践
手机号码智能定位系统:从技术原理到行业实践 【免费下载链接】location-to-phone-number This a project to search a location of a specified phone number, and locate the map to the phone number location. 项目地址: https://gitcode.com/gh_mirrors/lo/lo…...
利用快马平台十分钟搭建worldmonitor数据监控原型
最近在做一个全球数据监控的小项目,需要快速验证原型效果。传统开发流程从环境搭建到功能实现至少需要几天时间,但这次尝试用InsCode(快马)平台后,十分钟就搭出了可运行的worldmonitor原型。分享下具体实现思路和操作体验: 明确核…...
DeepSeek-OCR-2保姆级部署教程:5分钟在星图GPU平台一键搭建OCR服务
DeepSeek-OCR-2保姆级部署教程:5分钟在星图GPU平台一键搭建OCR服务 1. 为什么你需要这个OCR服务 如果你经常需要处理扫描文档、发票、合同或者各种纸质材料的数字化,肯定遇到过传统OCR工具的痛点——表格识别混乱、多栏文本顺序错乱、公式识别一塌糊涂…...
告别盲调!用STM32的编码器模式+定时器中断,精准测量电机转速(附速度计算源码)
STM32编码器模式实战:从脉冲计数到精准转速测量的全链路解析 在电机控制系统中,转速测量就像给盲人配上一副眼镜——它让抽象的旋转运动变得可视化、可量化。许多工程师在完成电机基础驱动后常陷入一个尴尬境地:电机确实转起来了,…...
告别Edge收藏夹翻页烦恼!用这个免费插件实现多列平铺,效率翻倍
Edge浏览器收藏夹效率革命:多列平铺插件实战指南 每次打开Edge浏览器,面对那串长得仿佛没有尽头的单列收藏夹,你是不是也感到一阵无力?滚动、翻页、再滚动——找个书签比找停车位还费劲。作为一名每天要和上百个书签打交道的效率控…...
收藏 | 传统程序员转型AI Agent工程师:未来最值钱的程序员是这类人
文章探讨了传统程序员在AI时代面临的转型问题,提出AI Agent工程师是未来趋势。文章指出,AI Agent工程师的核心能力并非模型本身,而是构建稳定自动化系统的系统工程能力,包括工具编排、状态管理、权限控制等。文章建议传统程序员通…...
Fish Speech 1.5API文档增强:OpenAPI 3.0规范生成与Swagger UI集成
Fish Speech 1.5 API文档增强:OpenAPI 3.0规范生成与Swagger UI集成 1. 引言:为什么需要API文档增强? 在实际开发中,我们经常遇到这样的场景:团队新成员需要快速了解API接口,第三方开发者想要集成语音合成…...
循环冷却水流量示意图设计 建筑水流量示意图绘制教程
一、引言 在建筑给排水、暖通空调及工业循环水系统设计中,循环冷却水流量示意图与建筑水流量示意图是核心技术图纸之一,其作用是直观呈现水流路径、管径规格、流量分配、设备连接关系及压力节点参数,为系统施工、调试、运维及故障排查提供可…...
LeetCode 热题100——3.无重复字符的最长子串
题目: 给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串 的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。注意 "bca" 和 "cab&qu…...
