Python采集某网站文档并保存word格式的示例

 更新时间:2023年07月19日 11:26:33   作者:轻松学Python  
这篇文章主要介绍了Python采集某网站文档并保存word格式的示例,我们平常需要下载文档的时候,是不是发现,要么不能下载,要么不能复制,那么我们今天来分享一下,如何用Python将这些不给下载的文档给批量下载下来,需要的朋友可以参考下

准备工作

今天来分享一下,如何用Python将这些不给下载的文档给批量下载下来。

开发环境

python 3.8
pycharm

模块使用

两个需要安装的第三方模块,安装命令也写出来了。

requests --> pip install requests
re
base64
docx --> pip install python-docx

实现思路

一、数据来源分析

1.明确需求

明确采集网址以及数据内容是什么?

网址: https://www.***.com/p-3282300896.html

数据: 文档内容

2.抓包分析

我们需要数据内容是可以请求那个链接能够得到

文档形式: 图片样式
通过浏览器自带工具: 开发者工具抓包
打开开发者工具: F12 / 右键点击检查选择network
刷新网页
开发者工具搜索: docinpic
文档图片数据
链接: http://221.122.117.73/docinpic.jsp
sid: P1ekRarOT5ID*deCCfQPHapgA9Z5X3NNn0xfBxPIDApUnSY9yIVtfuxey1BsO1BG <获取>
file: 文档ID <可以自己获取>
width: 图片分辨率
pageno: 页码 <可以用for循环>

二、代码实现步骤

  1. 发送请求, 模拟浏览器对于 文档页面url地址 发送请求
    请求链接: https://www.***.com/p-3282300896.html
  2. 获取数据, 获取服务器返回响应数据
  3. 解析数据, 提取我们需要的内容:
    sid参数 / 文档页数 / 文档名称
    构建文档图片链接
  4. 保存数据, 把文档图片内容保存下来

通过文字识别, 把图片里面文字识别出来, 保存文档里面就可以了

使用百度云API接口:

1. 注册登陆百度云API
2. 选择文字识别, 创建应用, 领取免费资源, 点击技术文档
3. 先获取token值
4. API调用的文档代码

代码展示

文字识别

doc = Document()
def Content(content):
    url = "https://a***.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']
    request_url = "https://***.com/rest/2.0/ocr/v1/accurate_basic"
    # 二进制方式打开图片文件
    # f = open('img\\1 计算机概述1.jpg', 'rb')
    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)

发送请求

# 模拟浏览器 --> 字典数据类型 --> 键:值
headers = {
    # User-Agent 用户代理 表示浏览器基本身份信息
    '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'
}
# 请求链接
url = 'https://www.***.com/p-3282300896.html'
# 发送请求
response = requests.get(url=url, headers=headers)

获取数据、解析数据

# 获取网页数据
html_data = response.text
# 提取sid参数
sid = re.findall('flash_param_hzq:"(.*?)",', html_data)[0]
# 提取名字
name = re.findall('productName:"(.*?)",', html_data)[0]
# 提取页码
num = re.findall('<em>(\d+)</em>页</span>', html_data)[0]
# 构建完整图片链接
content_list = []
for page in range(1, int(num)+1):
    # 字符串格式化方法
    img = f'http://221.122.117.73/docinpic.jsp?sid={sid}&file=3282300896&width=942&pageno={page}'

保存数据, 把文档图片内容保存下来

# 发送请求, 获取二进制数据<图片内容>
img_content = requests.get(url=img, headers=headers).content
words = Content(img_content)
doc.add_paragraph(words)

到此这篇关于Python采集某网站文档并保存word格式的示例的文章就介绍到这了,更多相关Python采集网站文档保存内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 深入解析Python列表切片赋值的底层机制与高级技巧

    深入解析Python列表切片赋值的底层机制与高级技巧

    提到列表操作,我们经常会用到切片(Slicing)来获取子序列,但你是否真正深入探究过切片的赋值操作,下面我们就来深入剖析一下 Python 的切片赋值吧
    2026-05-05
  • Django中auth模块用户认证的使用

    Django中auth模块用户认证的使用

    本文主要介绍了Django中auth模块用户认证的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Python实现将中文大写金额转数字金额

    Python实现将中文大写金额转数字金额

    在日常的财务处理、票据识别或金融系统开发中,我们常常需要将中文大写的金额转换为阿拉伯数字形式,下面我们就来看看如何使用Python实现这一需求吧
    2025-09-09
  • VSCode配置Python环境保姆级教程(看这一篇就够)

    VSCode配置Python环境保姆级教程(看这一篇就够)

    vscode作为一款好用的轻量级代码编辑器,不仅支持代码调试,而且还有丰富的插件库,可以说是免费好用,对于初学者来说用来写写python是再合适不过,这篇文章主要介绍了VSCode配置Python环境保姆级教程的相关资料,需要的朋友可以参考下
    2026-03-03
  • 基于python的字节编译详解

    基于python的字节编译详解

    下面小编就为大家带来一篇基于python的字节编译详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • python3.7 使用pymssql往sqlserver插入数据的方法

    python3.7 使用pymssql往sqlserver插入数据的方法

    这篇文章主要介绍了python3.7 使用pymssql往sqlserver插入数据的方法,代码很简单,感兴趣的朋友跟随小编一起看看吧
    2019-07-07
  • Python3.5.3下配置opencv3.2.0的操作方法

    Python3.5.3下配置opencv3.2.0的操作方法

    下面小编就为大家分享一篇Python3.5.3下配置opencv3.2.0的操作方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • 用Python给图像算法做个简单应用界面

    用Python给图像算法做个简单应用界面

    这篇文章主要介绍了用Python给图像算法做个简单应用界面,帮助大家更好的理解和学习使用python开发gui,感兴趣的朋友可以了解下
    2021-05-05
  • pymongo中group by的操作方法教程

    pymongo中group by的操作方法教程

    这篇文章主要给大家介绍了关于pymongo中group by的操作方法,文中通过示例代码介绍的非常详细,对大家学习或者使用pymongo具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • Python实现npy/mat文件的保存与读取

    Python实现npy/mat文件的保存与读取

    除了常用的csv文件和excel文件之外,我们还可以通过Python把数据保存文npy文件格式和mat文件格式。本文为大家展示了实现npy文件与mat文件的保存与读取的示例代码,需要的可以参考一下
    2022-04-04

最新评论