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

时间:2022-12-17 13:53:18

前言

今天来点不一样的

用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. 解析数据, 提取图片链接地址

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

python学习交流Q群:770699889 ### 源码领取
# 定义文件名 整型
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群:770699889 ### 源码领取
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')

最后

今天的分享到这里就结束了

顺便给大家推荐一些Python视频教程,希望对大家有所帮助:

Python零基础教学合集

对文章有问题的,或者有其他关于python的问题,可以在评论区留言或者私信我哦
觉得我分享的文章不错的话,可以关注一下我,或者给文章点赞(/≧▽≦)/