Skip to main content
 首页 » 编程设计

python之使用 Python 下载 URL 中未明确引用的文档

2025年05月04日10myhome

我使用 Bing API 在 Python 2.6 中编写了一个网络爬虫,用于搜索某些文档,然后下载它们以供稍后分类。我一直在使用字符串方法和 urllib.urlretrieve()下载 URL 以 .pdf、.ps 等结尾的结果,但当文档“隐藏”在如下 URL 后面时,我遇到了麻烦:

http://www.oecd.org/officialdocuments/displaydocument/?cote=STD/CSTAT/WPNA(2008)25&docLanguage=En

那么,两个问题。一般有没有一种方法可以判断一个 URL 是否有一个 pdf/doc 等文件,如果它没有明确地链接到它(例如 www.domain.com/file.pdf)?有没有办法让 Python 获取该文件?

编辑: 感谢您的回复,其中有几位建议下载文件以查看其类型是否正确。唯一的问题是……我不知道该怎么做(参见上面的问题 #2)。 urlretrieve(<above url>)只给出一个包含相同 url 的 href 的 html 文件。

请您参考如下方法:

无法从 URL 中得知它将为您提供什么。即使它以 .pdf 结尾,它仍然可以为您提供 HTML 或任何它喜欢的内容。

您可以执行 HEAD 请求并查看内容类型,如果服务器没有骗您,它会告诉您它是否是 PDF。

或者您可以下载它,然后判断您得到的是否是 PDF。