gpt4 book ai didi

python | Http - 无法获得正确的 MIME 类型

转载 作者:行者123 更新时间:2023-11-28 17:22:52 26 4
gpt4 key购买 nike

我正在使用 urllib3 构建网络爬虫。示例代码:

from urllib3 import PoolManager

pool = PoolManager()
response = pool.request("GET", url)
mime_type = response.getheader("content-type")

我偶然发现了一些指向文档文件(如 docx 和 epub)的链接,我从服务器获取的 mime 类型是 text/plain。获取 正确 mime 类型。

有问题的 url 示例:

http://lsa.mcgill.ca/pubdocs/files/advancedcommonlawobligations/523-gold_advancedcommonlawobligations_-2013.docx

现在获取文件的 mime 类型的逻辑是从服务器获取它,如果不可用则尝试获取文件的扩展名。

为什么 Firefox 不会被这些 url 弄糊涂并让用户立即下载文件?它怎么知道这个文件不是纯文本呢?我怎样才能得到正确的 MIME 类型?

最佳答案

我没有读过 Firefox 的源代码,但我猜想 Firefox 要么会尝试根据 URL 猜测文件类型,要么如果它是特定的 Content-Type 并且大于某个最大大小则拒绝内联呈现它,或者它甚至可能会检查一些文件内容以找出它基于 magic number 的内容。在开始时。

您可以使用 Python mimetypes module在标准库中根据 URL 猜测文件类型:

import mimetypes
url = "http://lsa.mcgill.ca/pubdocs/files/advancedcommonlawobligations/523-gold_advancedcommonlawobligations_-2013.docx"
type, encoding = mimetypes.guess_type(url)

在这种情况下,type"application/vnd.openxmlformats-officedocument.wordprocessingml.document",这可能是您想要的。

关于 python | Http - 无法获得正确的 MIME 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40595634/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com