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

news2025/7/20 7:32:20

前言

是谁,是谁在网页上搜索往年考试卷题+答案的时候只能阅读前两页的选择题,是谁在搜几千字的文档资料只能看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 为官网获取的SK
    host = '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_token
    headers = {'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')

最后

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

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

redis集群介绍、部署

一&#xff1a;redis集群介绍 1.1 单实例的Redis缓存存在的问题 1.1.1 写并发 Redis单实例读写分离可以解决读操作的负载均衡&#xff0c;但对于写操作&#xff0c;仍然是全部落在了master节点上面&#xff0c;在海量数据高并发场景&#xff0c;一个节点写数据容易出现瓶颈&…

python 自动化测试 pytest 的使用

pytest 是一款以python为开发语言的第三方测试&#xff0c;主要特点如下&#xff1a; 比自带的 unittest 更简洁高效&#xff0c;兼容 unittest框架 支持参数化 可以更精确的控制要测试的测试用例 丰富的插件&#xff0c;已有300多个各种各样的插件&#xff0c;也可自定义扩…

论文投稿指南——中文核心期刊推荐(综合性经济科学 2)

【前言】 &#x1f680; 想发论文怎么办&#xff1f;手把手教你论文如何投稿&#xff01;那么&#xff0c;首先要搞懂投稿目标——论文期刊 &#x1f384; 在期刊论文的分布中&#xff0c;存在一种普遍现象&#xff1a;即对于某一特定的学科或专业来说&#xff0c;少数期刊所含…

JavaScript 测试 Prototype

文章目录JavaScript 测试 Prototype引用 PrototypePrototype 描述测试 PrototypeJavaScript 测试 Prototype 测试 JavaScript 框架库 - Prototype 引用 Prototype 如需测试 JavaScript 库&#xff0c;您需要在网页中引用它。 为了引用某个库&#xff0c;请使用 <!DOCTYP…

【Opencv项目实战】目标追踪:实时追踪人工标注的多个目标

文章目录一、项目思路二、问题清单三、算法详解3.1、定义目标追踪算法3.2、初始化追踪器3.3、更新目标追踪器3.4、绘制目标矩形框3.5、人工标注感兴趣目标3.5.1、标注ROI区域3.5.2、截取ROI区域四、项目实战&#xff1a;单目标 - 实时追踪五、项目实战&#xff1a;多目标 - 实时…

一文教会你如何在Linux系统中使用Docker安装Redis 、以及如何使用可视化工具连接【详细过程+图解】

文章目录1、安装redis2、在外部创建配置文件3、创建redis4、启动测试redis5、数据持久化存储6、使用可视化工具连接redis前言在windows上安装过reids、在linux上也安装过redis&#xff0c;但是都没有docker上安装redis方便。这里给出docer安装redis的相关教程1、安装redis 默认…

Python|Pymol的安装

​Pymol的使用其实可以分为两种&#xff0c;一种是GUI图形操作界面&#xff0c;直接可以去Pymol官网上下&#xff0c;另一种则是使用API的方式直接调用&#xff0c;适合写脚本批量处理一些东西。建议画图&#xff0c;看结构直接用GUI&#xff0c;但是计算RMSD啥的&#xff0c;用…

【OJ】盐荒子孙

&#x1f4da;Description: 盐体图 盐是对人类生存具有重要意义的物质之一。当中国古人从肉食为主转向谷食为主的时候&#xff0c;吃盐的需求就发生了&#xff0c;因为动物血肉里面包含有足够人体所需的盐分&#xff0c;而谷 物本身不包含盐分。在长达几十万年的旧石器时代&…

localStorage和sessionStorage

目录 一、localStorage和SessionStorage在哪里&#xff0c;是什么 二、localStorage和sessionStorage区别 三、localStorage常用方法 四、sessionStorage常用方法 一、localStorage和SessionStorage在哪里&#xff0c;是什么 【1】在浏览器开发者工具的Application栏目里&…

2023年消费电子行业研究报告

第一章 行业概况 消费电子行业是电子信息行业的子行业。消费电子是指围绕着消费者应用而设计的与生活、工作和娱乐息息相关的电子类产品&#xff0c;通常会应用于娱乐、通讯以及文书用途&#xff0c;最终实现消费者自由选择资讯、享受娱乐的目的&#xff0c;主要侧重于个人购买…

Gephi快速入门

Gephi快速入门1. 导入文件&#xff08;Import file&#xff09;2. 布局&#xff08;Layout&#xff09;3. 排序&#xff08;Ranking&#xff09;4. 指标&#xff08;Metrics&#xff09;5. 标签&#xff08;Label&#xff09;6. 社区发现&#xff08;Community detection&#…

AI入场,搜索这个“营销枢纽”有新故事吗?

哪里有内容&#xff0c;哪里就有搜索。 以前&#xff0c;互联网离我们生活很远&#xff0c;传统搜索与用户的距离分割&#xff0c;只有当用户想要了解什么&#xff0c;才会去使用。 如今&#xff0c;互联网与真实世界密不可分&#xff0c;加之新技术、新平台的不断涌现&#xf…

Python年利率计算器【N日年化收益率】

现在有闲钱的人&#xff0c;按照聪明等级从低到高排序应该是钱买股票&#xff0c;一年利率约为-20%钱放银行活期&#xff0c;年利率约为0.3%钱放银行定期&#xff0c;一年利率约为1.5%钱放余额宝&#xff08;支付宝&#xff09;或零钱通&#xff08;微信&#xff09;&#xff0…

ChatGPT和Web3:人工智能如何帮助您建立和发展您的 Web3 公司

ChatGPT是OpenAI在2022年11月推出的聊天机器人。该机器人建立在OpenAI的GPT-3人工智能家族上&#xff0c;并通过监督学习和强化学习技术进行了优化。 与ChatGPT机器人聊天时&#xff0c;你会感觉自己在与一个懂得一切并以非常教育性的方式回答的朋友交谈。回答在许多知识领域非…

文件上传+easyExcel

文章目录需求描述实现0、依赖1、编写配置类2、文件上传工具类3、编写Controller4、编写Service5、编写excel对应的类6、创建easyExcel的监听器7、最终效果需求描述 页面中当用户将excel表格上传到服务器后&#xff0c;将该excel文件保存在本地然后在服务器中将excel中的数据读取…

预编译(回顾)

浏览器运行机制变量提升机制私有变量提升步骤全局对象 GO 和全局变量对象 VO的区别带var和不带var的区别系统输出顺序变量提升在条件判断下的处理防止函数的变量提升 浏览器运行机制 为了能够让代码执行&#xff0c;浏览器首先会形成一个执行环境栈 ECStack(Execution Contex…

15- 答题卡识别及分数判定项目 (OpenCV系列) (项目十五)

项目要点 图片读取 : img cv2.imread(./images/test_01.png)灰度图: gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)高斯模糊: blurred cv2.GaussianBlur(gray, (5, 5), 0) # 去噪点边缘检测: edged cv2.Canny(blurred, 75, 200)检测轮廓: cnts cv2.findContours(e…

Ai作画studio环境布置

大家好&#xff0c;今天跟大家介绍如何用stable diffusion webui布置自己的Ai作画工作环境。这部分主要就是实操&#xff0c;没有太多理论知识介绍。跟着做就好了&#xff0c;当成是一次计算机实验上机课就好基础环境布置这次开发环境选择的是AutoDL的GPU云环境&#xff0c;链接…

ros下用kinectv2运行orbslam2

目录 前提 创建工作空间 orbslam2源码配置、测试&#xff1a; 配置usb_cam ROS功能包 配置kinect 前提 vim 、 cmake 、 git 、 gcc 、 g 这些一般都装了 主要是Pangolin 、 OpenCV 、 Eigen的安装 18.04建议Pangolin0.5 创建工作空间 我们在主目录下创建一个catkin_…

听车企做开发朋友说,面试Framework 必问~

近期听在车企工作的朋友说&#xff0c;今年去他们公司面试的人比往年增长了30%左右&#xff0c;但实际面试达到标准的人屈指可数&#xff0c;大多都是从 Android 开发方向转过来的。 车企招聘要求有哪些&#xff1f; 每个车企因为业务部门的不同&#xff0c;他们的要求也会有…