通过爬虫向word文档中传入多张图片

本文介绍了如何使用Python的requests库抓取网页二进制内容,通过open()函数进行文件操作,以及使用python-docx处理Word文档。还展示了如何清除缓存文件和添加图片到Word文档中。
摘要由CSDN通过智能技术生成

目录

1.涉及的相关知识点:

2.知识点展开:

3.源代码实现:


1.涉及的相关知识点:

  • 导入request:用于获取网页的二进制文件
  • context():获取网页的二进制文内容
  • open()函数:实现文件写入功能
  • Document():用于创建一个文档,并且执行对文档的相关操作
  • remove():用于清除缓存文件

2.知识点展开:

2.1、 request和context的使用:

import requests
url = 'http://example.com/page.html'
response = requests.get(url) #获取网页的二进制文件
html = response.content      # 获取网页的二进制内容

2.2、open函数:

open() 函数是 Python 中用于打开文件的内置函数。它有两个主要参数:文件名和模式。

open() 函数中,参数如下:

  1. filename:要打开的文件名(包括路径),可以是一个字符串或者包含文件名的变量。
  2. mode:指定文件的打开模式,是一个可选参数。它决定了对文件进行何种操作,例如读取、写入、追加等。常见的模式有:
    • 'r':只读模式。文件必须存在,否则会抛出异常。
    • 'w':写入模式。如果文件存在,则覆盖文件内容;如果文件不存在,则创建新文件。
    • 'a':追加模式。如果文件存在,则在文件末尾添加内容;如果文件不存在,则创建新文件。
    • 'x':独占创建模式。如果文件存在,会抛出异常;如果文件不存在,则创建新文件。
    • 'b':二进制模式。与其他模式一起使用,表示以二进制格式进行读取或写入。
    • 't':文本模式(默认)。与其他模式一起使用,表示以文本形式进行读取或写入。

例如:向指定文件读取内容 也就是mode为‘r’

with open('example.txt', 'r') as file:
    content = file.read()
    print(content)

2.3、Document的使用:要先在docx模块中获取( pip install requests python-docx
可以用以下语句获取内容)

from docx import Document

# 创建一个新的文档
doc = Document()

# 添加标题和段落
doc.add_heading('Python-docx示例', level=1)
doc.add_paragraph('这是一个简单的示例,演示了如何使用python-docx库来处理Word文档。')

# 保存文档
doc.save('example.docx')

  2.4、remove的使用:这里的remove是OS模块中的函数,用于删除文件。

import os
# 删除文件
file_path = 'example.txt'
os.remove(file_path)

    

3.源代码实现:(这里默认你已经找到图片地址的一般规律了)

from docx import Document
from docx.shared import Inches
import myRequests
import os

#创建一个文档
doc=Document()
#设置图片文件缓存名
filename = r"D:\word文档\test.jpg"
#根据从网页中获取的信息观察,发现图片网址规律
for i in range(1,17):
    print("开始下载{}.page".format(i))
    #wb,w表示写入模式,如果文件存在,就覆盖原来的内容,b表示二进制文件
    with open(filename,'wb') as f:
            #获取网页的内容,最后的.context不能少,否则返回的就是一个response,而写入文件的内容应该是一个二进制内容。
            r = myRequests.get(
                'https://ow365.cn/owview/wv/ResReader.ashx?n=p{}.img&v=00000000-0000-0000-0000-000000000602&usid=b7862ddf-bee5-452c-a318-f7952bb4f90d&WOPIsrc=http%3A%2F%2Foosh%2Fwopi%2Ffiles%2F%40%2Fwopi%3FvId%3DRrdwz7qnhIni9o3GFWf6KA--&z=2162d169a40aaea3b2c400a94f33a30d1847e362a29983cf4c3ace9113c9078c'.format(i)).content
            f.write(r)
    #向doc文档中添加图片,并且设置图片的宽度和高度: 单位为英寸,这里的数据是根据word中图片的长宽换算成英寸后得出的。
    doc.add_picture(filename,width=Inches(6.26),height=Inches(8.85))
    #清楚缓存文件,文件不会被保存到指定位置。
    os.remove(filename)
#保存文件名为:****
doc.save("output3.docx")
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值