首页 > 解决方案 > 使用 Python 从 Salesforce URL 下载图像

问题描述

我有一个来自 Salesforce 的一系列联系人的 csv,其中包含名称、位置和打开我需要下载的图像的 URL

到目前为止,我只能使用 Python 访问我的 Salesforce 实例,但我正在努力寻找一种使用 python 包的方法,不仅可以打开 URL,还可以下载 .jpg 格式的图像并使用名称和位置重命名的客户。

是否有任何可用的软件包可以让我这样做。我试过使用simple-salesforce,但我认为它没有这个功能。

下面是我到目前为止的代码,它显示了一个查询,它返回我需要下载 ( URL_Fotograf_a_Cliente__c) 的 URL 链接的所有联系人,但我没有比这更进一步的了

from simple_salesforce import Salesforce, SFType, SalesforceLogin
import pandas as pd
import json
from pprint import pprint as pp

session_id, instance = SalesforceLogin(username= username, password=password, security_token=security_token, sandbox=False)

print(session_id,instance)

sf = Salesforce(instance= instance, session_id=session_id)

SOQL= "SELECT Id, Name,C_digo_del_Usuario__c,Tratamiento_IPA__c,Estado__c,Municipio__c,Comunidad__c, URL_Fotograf_a_Cliente__c FROM Contact WHERE Tratamiento_IPA__c IN ('x', 'y', 'z')"

pp(sf.query(query = SOQL))

标签: pythonpython-3.xsalesforce

解决方案


simple_salesforce是访问 Salesforce 的正确软件包,但您使用它的方式并不真正适合典型的途径。您无需触摸SalesforceLoginSFType; 这些大多是内部的。做就是了

sf = Salesforce(username=username, password=password, security_token=security_token, sandbox=False)

然后,查询您的记录

records = sf.query("SELECT Id, Name,C_digo_del_Usuario__c,Tratamiento_IPA__c,Estado__c,Municipio__c,Comunidad__c, URL_Fotograf_a_Cliente__c FROM Contact WHERE Tratamiento_IPA__c IN ('x', 'y', 'z')")
for r in records.get("records"):
    url = record["URL_Fotograf_a_Cliente__c"]
    # Now, download the image and save it.
    # other record details are available as, e.g., `record["Name"]`

您下载图像的具体方式取决于它是否托管在 Salesforce 上并且需要身份验证才能访问。我假设它只是一个外部 URL,在这种情况下,您可以使用requests或您选择的库来请求数据并将其保存到磁盘。


推荐阅读