如何通过 python 访问托管在 Web 上的文件?
How do I access files hosted on web via python?
我正在开发一个在本地计算机上运行的系统(python 程序),但它需要获取托管在网络某处的数据(在我的例子中是图像)。
它的作用是:
- 向虚拟主机发送 SQL 查询(目前
localhost
)
- 响应发回图像的名称(它存储在一个名为
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-site
或 www.my-site.com
),然后将这些资源复制到本地机器进行处理。
我正在开发一个在本地计算机上运行的系统(python 程序),但它需要获取托管在网络某处的数据(在我的例子中是图像)。 它的作用是:
- 向虚拟主机发送 SQL 查询(目前
localhost
) - 响应发回图像的名称(它存储在一个名为
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-site
或 www.my-site.com
),然后将这些资源复制到本地机器进行处理。