【发布时间】:2018-12-20 05:02:37
【问题描述】:
我正在尝试使用 Python 3.7 中的 urllib 从链接下载文件,它下载的是 HTML 文件而不是图像文件。
所以我正在尝试从 Google 表单接收信息,该信息被发送到 Google 表格。我能够收到工作表中的信息没问题。但是,表单需要提交图像,该图像以 URL 的形式出现在工作表中。 (例如:https://drive.google.com/open?id=1YCBmEOz6_l7WDQw5t6AYBSb9B5XXKTuX)
这是我的代码:
import urllib.request
import random
然后我创建一个下载函数:
def downloader(image_url):
file_name = random.randrange(1,10000)
full_file_name = str(file_name) + '.png'
print(full_file_name)
urllib.request.urlretrieve(image_url,full_file_name)
我得到网址并隔离图片的ID:
ImgId="https://drive.google.com/open?id=1Mp5XYoyyEfWJryz8ojLbHuZ6V0IzERIV"
ImgId=ImgId[33:]
然后我把ID放在一个下载链接里:
ImgId="https://drive.google.com/uc?authuser=0&id="+ImgId+"&export=download"
这导致(在上面的示例中)“https://drive.google.com/uc?authuser=0&id=1YCBmEOz6_l7WDQw5t6AYBSb9B5XXKTuX&export=download”。 接下来我运行下载功能:
downloader(ImgId)
因此,在此之后,我希望将 png 文件下载到程序的文件夹中,但是它下载了 google drive log-in 页面的 html 文件而不是图像文件,甚至图像的 html 文件。请注意,要查看或下载图像,您需要登录 Google 才能在浏览器中下载,授权可能是个问题吗? (注意:如果我手动将程序生成的下载链接粘贴到我的浏览器中,它会正确下载图像) (PS我绝对是菜鸟,所以是的) (提前感谢您的任何回答)
【问题讨论】: