如何通过 python 访问托管在 Web 上的文件?

How do I access files hosted on web via python?

我正在开发一个在本地计算机上运行的系统(python 程序),但它需要获取托管在网络某处的数据(在我的例子中是图像)。 它的作用是:

  1. 向虚拟主机发送 SQL 查询(目前 localhost
  2. 响应发回图像的名称(它存储在一个名为 fetchedImages 的数组中,让我们假设)。

现在,一旦我有了所需图像的所有名称,我要做的就是直接从 localhost 访问文件并将其复制到本地计算机。但这就是我的问题:

我正在尝试以以下方式访问它:

source = "localhost/my-site/images"
localDir = "../images"

for image in fetchedImages:
    copy(source+image,localDir)

但问题是,本地主机是使用 XAMPP 创建的,我无法访问 localhost,因为 python 不接受它作为路径。如果本地主机不是通过 SimpleHTTPServer 而是通过 XAMPP 创建的,我该如何访问它?

可以使用requests解决:

import requests as req
from StringIO import StringIO
from PIL import Image

source = "http://localhost/my-site/images/"
localDir = "../images"

for image in fetchedImages:
    remoteImage = req.get(source+image)
    imgToCopy = Image.open(StringIO(remoteImage.content))
    imgToCopy.save(localDir+image)

requests 将访问 Web 资源,从而使系统易于使用动态路径(localhost/my-sitewww.my-site.com),然后将这些资源复制到本地机器进行处理。