Python:从 URL 中的 Word 文件中提取文本

Har*_*old -1 python python-3.x

给定包含某个文件(在本例中为 Word 文档)的 url,读取该文档的内容。我见过几个如何从本地文档中提取文本而不是从 URL 中提取文本的示例。来自 http 地址的地址与来自 ftp 地址的地址相同吗?

from urllib.request import urlopen

url = 'ftp://path/to/file.docx'

txt = urlopen(url).read()
Run Code Online (Sandbox Code Playgroud)

文本的值为:

b'PK\x03\x04\x14\x00\x06\x00\x08\x00\x00\x00!\x00\xdd\xfc\x957f\x01\x00\x00 \x05\x00\x00\x13\x00\x08\x02[Content_Types].xml \xa2\x04\x02(\xa0\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 ...'
Run Code Online (Sandbox Code Playgroud)

我尝试解码

txt.decode("utf-8", "ignore")
Run Code Online (Sandbox Code Playgroud)

但这会返回,PK ...后面跟着其他奇怪的字符

保存文档然后对其进行处理的选项不可行。

我究竟做错了什么?

hei*_*ala 5

通过使用requestsdocx2txt ,这非常简单:

import requests
import docx2txt
from io import BytesIO

url = "http://url.to.file/sample.docx"
docx = BytesIO(requests.get(url).content)

# extract text
text = docx2txt.process(docx)
Run Code Online (Sandbox Code Playgroud)