【问题标题】:How to download file using Python? [duplicate]如何使用 Python 下载文件? [复制]
【发布时间】:2018-08-13 07:04:09
【问题描述】:

我是 Python 的新手,我想通过向服务器发送请求来下载文件。当我在浏览器中键入它时,我看到 CSV 文件已下载,但当我尝试发送获取请求时它不会返回任何内容。例如:

import urllib2
response = urllib2.urlopen('https://publicwww.com/websites/%22google.com%22/?export=csv')
data = response.read()
print 'data: ',  data

它没有显示任何内容,我该如何处理?当我在网上搜索时,所有的问题都是关于如何发送获取请求。我可以发送获取请求,但我不知道如何下载文件,因为它不在请求的响应中。

我不知道如何找到解决方案。

【问题讨论】:

  • 问题已经回答了。 stackoverflow.com/questions/22676/…
  • 2008 年 8 月提出/回答了被引用为回答此问题的帖子,并使用来自 urllib.request 的 API,文档将其描述为“旧版接口”,并提到该接口可能会被弃用在未来的某个时候。肯定有更好的方法存在而不是 10 岁吗?我已经看到了使用 stream=True 的请求的建议,但也有人抱怨它比 curl 慢很多。 stackoverflow.com/questions/16694907/…

标签: python download get


【解决方案1】:
import os
os.system("wget https://publicwww.com/websites/%22google.com%22/?export=csv")

如果你有 wget,你可以试试。

【讨论】:

  • 请不要在没有提供理由的情况下投反对票,我看到有两个投反对票,而没有一个理由。
  • 我对此投了反对票,因为问题询问如何在 Python 中执行此操作。调用操作系统并运行另一个可执行文件不是“在 Python 中”。看看@Rakesh 的回答,看看它是如何使用 urllib 库完成的。
  • 这在 Windows 上不起作用。
【解决方案2】:

您可以使用urlretrieve下载文件

前:

u = "https://publicwww.com/websites/%22google.com%22/?export=csv"

import urllib
urllib.request.urlretrieve (u, "Ktest.csv")

【讨论】:

    【解决方案3】:

    您还可以使用 python 中的 requests 模块下载文件。

    import shutil
    
    import requests
    
    url = "https://publicwww.com/websites/%22google.com%22/?export=csv"
    response = requests.get(url, stream=True)
    with open('file.csv', 'wb') as out_file:
        shutil.copyfileobj(response.raw, out_file)
    del response
    

    【讨论】:

      猜你喜欢
      • 2011-08-31
      • 1970-01-01
      • 2019-01-19
      • 2023-04-04
      • 1970-01-01
      • 2016-03-05
      • 2015-10-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多