我有两个 ArcGIS REST 端点,我正在尝试获取每个图层的列表:
https://rdgdwe.sc.egov.usda.gov/arcgis/rest/services https://services1.arcgis.com/RLQu0rK7h4kbsBq5/ArcGIS/rest/services
这些不是我组织的端点,因此我无法在内部访问它们。在这些端点中的每一个都可以有文件夹、服务和层,或者只是服务和层。
我的目标是获取所有图层的列表。到目前为止,我已经尝试过:
endpoints=(["https://rdgdwe.sc.egov.usda.gov/arcgis/rest/services",
"https://services1.arcgis.com/RLQu0rK7h4kbsBq5/ArcGIS/rest/services"])
for item in endpoints:
reqs = requests.get(item, verify=False)
# used this verify because otherwise I get an SSL error for endpoints[0]
soup =BeautifulSoup(reqs.text, 'html.parser')
layers = []
for link in soup.find_all('a'):
print(link.get('href'))
layers.append(link)
但是,这并没有考虑到变量嵌套文件夹/服务/图层或服务/图层模式,而且它似乎没有完全附加到我的图层列表中。
我想我也可以走 JSON 路线并 append ?f=psjon
。例如:
https://rdgdwe.sc.egov.usda.gov/arcgis/rest/services/?f=pjson会给我文件夹 https://rdgdwe.sc.egov.usda.gov/arcgis/rest/services/broadband /?f=pjson会给我宽带文件夹中的所有服务, https: //rdgdwe.sc.egov.usda.gov/arcgis/rest/services/broadband/CDC_5yr_OpioidOverDoseDeaths_2016/MapServer?f=pjson 会给我 CDC_OverDoseDeathsbyCounty2016_5yr宽带文件夹中的第一个服务 (CDC_5yr_OpioidOverDoseDeaths_2016) 中的图层。
任何帮助表示赞赏。我把它放在这里与 GIS 堆栈交换中,因为这似乎是一个比地理空间问题更多的 Python 问题。