前言
嗨喽~大家好呀,这里是魔王呐 ❤ ~!
开发环境:
-
python 3.8
-
pycharm
模块使用:
-
requests --> pip install requests
-
re
-
json
-
time
-
base64
-
docx --> pip install python-docx
第三方模块安装:
win + R 输入cmd 输入安装命令 pip install 模块名 (如果你觉得安装速度比较慢, 你可以切换国内镜像源)
代码实现步骤:
-
发送请求, 模拟浏览器对于url地址发送请求
-
获取数据, 获取服务器返回响应数据
-
解析数据, 提取我们需要的内容 --> 图片链接
-
保存数据, 把图片内容保存
-
文字识别, 提取文字内容
-
文字写入word文档
代码展示
# 导入数据请求模块
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_token
headers = {'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 + D
data = {
'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).content
words = Content(img).replace('原创力文档', '').replace('max.book118.com', '').replace('下载高清无水印', '')
print(words)
# 写入内容
doc.add_paragraph(words)
doc.save('大学生电子商务实习报告.docx')
尾语
感谢你观看我的文章呐~本次航班到这里就结束啦 🛬
希望本篇文章有对你带来帮助 🎉,有学习到一点知识~
躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。
最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇