是谁!!在搜几千字的文档资料只能看25%…
是谁!!在百度文库找七找八的时候所有的东西都要付费才能继续看…
是谁!!是谁在网页上搜索往年考试卷题+答案的时候只能阅读前两页的选择题…
原来是我自己~我又不经常用,只有偶尔需要看看,还要我掏钱包,我说不行,绝对不行
什么都行 谈钱不行!!!咱没钱,咱有技术,直接让python帮我
今天就来分享下 用Python实现某du文库vip内容下载, 保存到word文档
解释器版本 >>> python 3.8
代码编辑器 >>> pycharm 2021.2
requests >>> 数据请求模块 需要安装
docx >>> 文档保存 需要安装
re 内置模块 不需要安装
如果安装python第三方模块:
win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车
在pycharm中点击Terminal(终端) 输入安装命令
发送请求, 模拟浏览器对于url地址发送请求图片数据包:
获取数据, 获取服务器返回响应数据
开发者工具: response
解析数据, 提取图片链接地址
保存数据, 把图片内容保存到本地文件夹
做文字识别, 识别文字内容
把文字数据信息, 保存word文档里面
1. 导入模块
import requests
from pprint import pprint
base64 import base64
import os
from docx import Document
import re
json import json
2. 发送请求
模拟浏览器对于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)
# 响应对象, 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\’<文件夹名字> + str(num)<文件名> + ‘.jpg’<文件后缀> mode=‘wb’ 保存方式, 二进制保存
img_content = requests.get(url=pic, headers=headers).content
# 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群:702813599 ### 源码领取
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')
感谢你观看我的文章呐~本次航班到这里就结束啦
希望本篇文章有对你带来帮助 ,有学习到一点知识~
躲起来的星星也在努力发光,你也要努力加油(让我们一起努力叭)。
最后,宣传一下呀~更多源码、资料、素材、解答、交流皆点击下方名片获取呀