我应该如何将数据从一个公共的google存储桶下载到python中?

2024-10-02 12:38:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我想访问公共google存储桶中的xml文件。我试着做以下事情:

import requests

url = 'https://storage.cloud.google.com/gcp-public-data-sentinel-2/tiles/04/Q/FJ/S2A_MSIL1C_20190126T210921_N0207_R057_T04QFJ_20190126T221757.SAFE/MTD_MSIL1C.xml'

response = requests.get(url)

结果是,响应是google登录页面的代码,而不是我想要访问的xml文件。我应该如何在python中访问这些数据?在


Tags: 文件httpsimportcomcloudurldatagoogle
1条回答
网友
1楼 · 发布于 2024-10-02 12:38:42

为了在不登录google的情况下直接下载文件(),您需要更改url,即:

来自

https://storage.cloud.google.com/gcp-public-data-sentinel-2/tiles/04/Q/FJ/S2A_MSIL1C_20190126T210921_N0207_R057_T04QFJ_20190126T221757.SAFE/MTD_MSIL1C.xml

^{pr2}$

Python示例:

import requests
u = "https://storage.googleapis.com/gcp-public-data-sentinel-2/tiles/04/Q/FJ/S2A_MSIL1C_20190126T210921_N0207_R057_T04QFJ_20190126T221757.SAFE/MTD_MSIL1C.xml"
r = requests.get(u)
open('MTD_MSIL1C.xml', 'wb').write(r.content)

MTD_MSIL1C.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<n1:Level-1C_User_Product xmlns:n1="https://psd-14.sentinel2.eo.esa.int/PSD/User_Product_Level-1C.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://psd-14.sentinel2.eo.esa.int/PSD/User_Product_Level-1C.xsd">
    <n1:General_Info>
        <Product_Info>
            <PRODUCT_START_TIME>2019-01-26T21:09:21.024Z</PRODUCT_START_TIME>
            <PRODUCT_STOP_TIME>2019-01-26T21:09:21.024Z</PRODUCT_STOP_TIME>
            <PRODUCT_URI>S2A_MSIL1C_20190126T210921_N0207_R057_T04QFJ_20190126T221757.SAFE</PRODUCT_URI>
            <PROCESSING_LEVEL>Level-1C</PROCESSING_LEVEL>
            <PRODUCT_TYPE>S2MSI1C</PRODUCT_TYPE>
...

注意事项:

  1. Accessing Public Data (API链接)
  2. 我不知道为什么仅仅通过改变网址就能起作用,但确实如此。在

相关问题 更多 >

    热门问题