目录
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()
函数中,参数如下:
filename
:要打开的文件名(包括路径),可以是一个字符串或者包含文件名的变量。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")