我有一个小工具,用于按计划从网站下载MP3,然后构建/更新播客XML文件,我显然已将其添加到iTunes.
创建/更新XML文件的文本处理是用Python编写的.我在Windows .bat文件中使用wget 来下载实际的MP3.我宁愿用Python编写整个实用程序.
我努力寻找一种方法来实际下载Python中的文件,因此我采用了wget.
那么,我如何使用Python下载文件?
我正在尝试使用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吗?
所以我正在尝试制作一个下载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) 使用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最新版本页面
可能重复:
如何使用请求下载图像
我知道获取URL非常简单requests.get,我可以获取原始响应体并将其保存到文件中,但是对于大文件,有没有办法直接流式传输到文件?就像我正在下载带有它的电影一样?
我需要使用请求调用来下载 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) 我有很多的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) 我正在请求一个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) 我正在做一个项目,我想从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)
有任何想法吗?