相关疑难解决方法(0)

如何使用Python通过HTTP下载文件?

我有一个小工具,用于按计划从网站下载MP3,然后构建/更新播客XML文件,我显然已将其添加到iTunes.

创建/更新XML文件的文本处理是用Python编写的.我在Windows .bat文件中使用wget 来下载实际的MP3.我宁愿用Python编写整个实用程序.

我努力寻找一种方法来实际下载Python中的文件,因此我采用了wget.

那么,我如何使用Python下载文件?

python http urllib

813
推荐指数
20
解决办法
100万
查看次数

如何使用请求下载图像

我正在尝试使用python的requests模块从Web下载并保存图像.

这是我使用的(工作)代码:

img = urllib2.urlopen(settings.STATICMAP_URL.format(**data))
with open(path, 'w') as f:
    f.write(img.read())
Run Code Online (Sandbox Code Playgroud)

以下是使用以下内容的新(非工作)代码requests:

r = requests.get(settings.STATICMAP_URL.format(**data))
if r.status_code == 200:
    img = r.raw.read()
    with open(path, 'w') as f:
        f.write(img)
Run Code Online (Sandbox Code Playgroud)

你能帮助我从响应中使用什么属性requests吗?

python urllib2 python-requests

336
推荐指数
13
解决办法
34万
查看次数

通过urllib和python下载图片

所以我正在尝试制作一个下载webcomics的Python脚本,并将它们放在桌面上的文件夹中.我在这里发现了一些类似的程序,但是没有什么比我需要的更好.我发现最相似的那个就在这里(http://bytes.com/topic/python/answers/850927-problem-using-urllib-download-images).我尝试使用此代码:

>>> import urllib
>>> image = urllib.URLopener()
>>> image.retrieve("http://www.gunnerkrigg.com//comics/00000001.jpg","00000001.jpg")
('00000001.jpg', <httplib.HTTPMessage instance at 0x1457a80>)
Run Code Online (Sandbox Code Playgroud)

然后我在计算机上搜索了一个文件"00000001.jpg",但我找到的只是它的缓存图片.我甚至不确定它是否将文件保存到我的电脑上.一旦我理解了如何下载文件,我想我知道如何处理剩下的文件.基本上只是使用for循环并将字符串拆分为'00000000'.'jpg'并将'00000000'递增到最大数字,我必须以某种方式确定.有关最佳方法或如何正确下载文件的任何建议吗?

谢谢!

编辑6/15/10

这是完成的脚本,它将文件保存到您选择的任何目录中.由于一些奇怪的原因,文件没有下载,他们只是做了.任何关于如何清理它的建议都将非常感激.我目前正在研究如何找到网站上存在的许多漫画,以便我可以获得最新的漫画,而不是在引发一定数量的异常后退出程序.

import urllib
import os

comicCounter=len(os.listdir('/file'))+1  # reads the number of files in the folder to start downloading at the next comic
errorCount=0

def download_comic(url,comicName):
    """
    download a comic in the form of

    url = http://www.example.com
    comicName = '00000000.jpg'
    """
    image=urllib.URLopener()
    image.retrieve(url,comicName)  # download comicName at URL

while comicCounter <= 1000:  # not the most elegant solution
    os.chdir('/file')  # set …
Run Code Online (Sandbox Code Playgroud)

python urllib urllib2

169
推荐指数
9
解决办法
29万
查看次数

是否有一个指向GitHub的链接,用于在最新版本的存储库中下载文件?

使用GitHub的发布功能,可以提供下载特定版本的已发布软件的链接.但是,每次发布时,都需要更新gh页面.

有没有办法获得任何最新版软件的特定文件的链接?

例如,这将是一个静态链接:

https://github.com/USER/PROJECT/releases/download/v0.0.0/package.zip

我想要的是:

https://github.com/USER/PROJECT/releases/download/latest/package.zip

注意:此问题与GitHub最新版本之间的区别在于此问题 专门要求访问该文件,而不是GitHub最新版本页面

release github download github-pages

122
推荐指数
12
解决办法
5万
查看次数

使用Python请求库保存大文件

可能重复:
如何使用请求下载图像

我知道获取URL非常简单requests.get,我可以获取原始响应体并将其保存到文件中,但是对于大文件,有没有办法直接流式传输到文件?就像我正在下载带有它的电影一样?

python http file download request

85
推荐指数
1
解决办法
9万
查看次数

使用 python Requests 下载压缩的 tar.gzfile 并使用 tar 解压

我需要使用请求调用来下载 tar gz 文件,我发现 requests.get 会自动解压缩文件,我尝试使用这里给出的解决方案但是当我尝试使用 tar 解压缩它时,它说它不是 gzip 格式.

我尝试了以下方法:

response = requests.get(url,auth=(user, key),stream=True)
if response.status_code == 200:
    with open(target_path, 'wb') as f:
        f.write(response.raw)

if response.status_code == 200:
    with open(target_path, 'wb') as f:
        f.write(response.raw)

raw = response.raw
with open(target_path, 'wb') as out_file:
    while True:
        chunk = raw.read(1024, decode_content=True)
        if not chunk:
            break
        out_file.write(chunk) 
Run Code Online (Sandbox Code Playgroud)

以上所有在解压缩时都会抛出错误:

$ tar -xvzf /tmp/file.tar.gz -C /

gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not …
Run Code Online (Sandbox Code Playgroud)

python gzip tar python-requests

6
推荐指数
1
解决办法
1万
查看次数

从 URL 下载文件并将其保存在 Python 文件夹中

我有很多的URL与文件类型.docx.pdf我想运行一个python脚本从URL下载它们,并存储在文件夹中。这是我为单个文件所做的工作,我会将它们添加到 for 循环中:

response = requests.get('http://wbesite.com/Motivation-Letter.docx')
with open("my_file.docx", 'wb') as f:
    f.write(response.content)
Run Code Online (Sandbox Code Playgroud)

my_file.docx它保存的只有 266 字节并且已损坏,但 URL 很好。

更新:

添加了此代码并且它可以工作,但我想将它保存在一个新文件夹中。

import os
import shutil
import requests

def download_file(url, folder_name):
    local_filename = url.split('/')[-1]
    path = os.path.join("/{}/{}".format(folder_name, local_filename))
    with requests.get(url, stream=True) as r:
        with open(path, 'wb') as f:
            shutil.copyfileobj(r.raw, f)

    return local_filename
Run Code Online (Sandbox Code Playgroud)

python python-requests

4
推荐指数
2
解决办法
2万
查看次数

如何读取从URL -Gzip压缩的CSV文件

我正在请求一个gzip压缩的csv文件.

如何解压缩该文件并将其转换为csv对象?

csv_gz_file = get("example.com/filename.csv.gz", headers=csv_headers, timeout=30, stream=True)

reader = csv.reader(csv_gz_file)
for row in reader:
   print row
Run Code Online (Sandbox Code Playgroud)

它抛出这个因为它没有解压缩

_csv.Error: line contains NULL byte
Run Code Online (Sandbox Code Playgroud)

python csv gzip

3
推荐指数
1
解决办法
2506
查看次数

通过python下载CSV文件(URL)

我正在做一个项目,我想从URL下载一个csv文件。我在该站点上进行了一些研究,但所提供的解决方案均不适合我。

该网址可直接为您提供下载或打开文件的文件,我不知道该怎么说一个python保存文件(如果我也可以重命名它会很好)

但是,当我使用此代码打开url时,没有任何反应。

import urllib
url='https://data.toulouse-metropole.fr/api/records/1.0/download/?dataset=dechets-menagers-et-assimiles-collectes'

testfile = urllib.request.urlopen(url)
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

python urllib

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

python ×8

python-requests ×3

urllib ×3

download ×2

gzip ×2

http ×2

urllib2 ×2

csv ×1

file ×1

github ×1

github-pages ×1

release ×1

request ×1

tar ×1