[转] 三种Python下载url并保存文件的代码

原文 三种Python下载url并保存文件的代码

利用程序自己编写下载文件挺有意思的。

Python中最流行的方法就是通过Http利用urllib或者urllib2模块。

当然你也可以利用ftplib从ftp站点下载文件。此外Python还提供了另外一种方法requests。

来看看三种方法是如何来下载zip文件的:

import urllib
import urllib2
import requests
url = ‘http://www.blog.pythonlibrary.org/wp-content/uploads/2012/06/wxDbViewer.zip‘
print "downloading with urllib"
urllib.urlretrieve(url, "code.zip")   

print "downloading with urllib2"
f = urllib2.urlopen(url)
data = f.read()
with open("code2.zip", "wb") as code:
    code.write(data)
print "downloading with requests"
r = requests.get(url)
with open("code3.zip", "wb") as code:
     code.write(r.content)

看起来使用urllib最为简单,一句语句即可。当然你可以把urllib2缩写成:

f = urllib2.urlopen(url)
with open("code2.zip", "wb") as code:
   code.write(f.read())
				
时间: 2024-08-06 20:02:09

[转] 三种Python下载url并保存文件的代码的相关文章

【汇编】三种方法实现装填中断子程序地址的代码

1 CODE SEGMENT 2 ASSUME CS:CODE 3 INT_50H PROC FAR 4 MOV CX,1000H 5 L: LOOP L 6 IRET 7 INT_50H ENDP 8 BEGIN: 9 PUSH DS 10 MOV AX,0 11 MOV DS,AX 12 MOV WORD PTR DS:[140H],OFFSET INT_50H 13 MOV WORD PTR DS:[142H],SEG INT_50H 14 MOV AH,4CH 15 INT 21H 16

Android学习之XML数据的三种解析方式以及生成XML文件

首先,我得声明,本博客的思想主要参考了此博客:http://blog.csdn.net/liuhe688/article/details/6415593 不过代码我自己一句句敲的 好了,首先讲一下解析XML的三种方式:(恕我粘贴一下哈) SAX解析器: SAX(Simple API for XML)解析器是一种基于事件的解析器,它的核心是事件处理模式,主要是围绕着事件源以及事件处理器来工作的.当事件源产生事件后,调用事件处理器相应的处理方法,一个事件就可以得到处理.在事件源调用事件处理器中特定方

tomcat 三种部署方式以及server.xml文件的几个属性详解

一.直接将web项目文件件拷贝到webapps目录中 这是最常用的方式,Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用.如果你想要修改这个默认目录,可以在conf下的server.xml文件里修改Host标签里的appBase值. 这个方法实际上和在IDE开发环境里部署项目是一样的. 用此方法的访问路径为http://localhost:8080/webname 二.修改Server.xml文件 在conf下的server.xml文件里找

免注册公众号的三种微信推送消息服务的C#代码实现

有时候我们需要监控一些网络上的变化,但是每次去刷新网页却又很麻烦,而且大部分刷新的时候网页并没有更新.那么有没有一个工具,可以监控网页变化,并将变化的结果推送到手机微信上呢? 这里有很多应用场景,比如前一段时间很火的工具来监控JD.TB等口罩是否有货的状态.还有就是刷票.抢课.监听网页便也变化.爬虫等等. 我们可以在后台写一个监控程序,一旦口罩有货了,就立马推送消息到微信上. 有人会说这样的方式,微信公众号可以实现啊,那么为什么要你介绍? 不不不,注册微信公众号后,还要阅读官方的各种文档,反复调

c# 通过地址下载流然后保存文件到本地

private void GetFileFromNetUrl(string url) { try { System.Net.WebRequest req = System.Net.WebRequest.Create(url); req.Method = "GET"; //获得用户名密码的Base64编码 添加Authorization到HTTP头 不需要的账号密码的可以注释下面两行代码 string code = Convert.ToBase64String(Encoding.ASCI

jquery.validate+jquery.form提交的三种方式

原文:http://www.cnblogs.com/datoubaba/archive/2012/06/06/2538873.html jquery.validate+jquery.form提交的三种方式 概述:本篇主要讨论jquery.validate结合jquery.form实现对表单的验证和提交方案. 方式一:是通过jquery.validate的submitHandler选项,即当表单通过验证时运行回调函数.在这个回调函数中通过jquery.form来提交表单: 方式二:是通过jquer

【转】WebView的JavaScript与本地代码三种交互方式

WebView的漏洞分析 漏洞产生的原因 最近在开发过程中遇到一个问题,就是 WebView 使用的时候,还是需要解决之前系统(4.2之前)导致的一个漏洞,虽然现在这个系统版本用户很少了,但是也不能忽视,关于这个漏洞,这里就不多做解释了,可能有的同学早就了解了,本来想写一篇文章详细介绍一下,但是网上的知识太多了,而且都很详细,就没弄了,这里大致简单明了的说几句: 漏洞产生的原因 这个漏洞导致的原因主要是因为Android中 WebView 中的 JS访问本地方法 的方式存在缺陷,我们做过交互的都

文件上传的三种方式-Java

前言:因自己负责的项目(jetty内嵌启动的SpringMvc)中需要实现文件上传,而自己对java文件上传这一块未接触过,且对 Http 协议较模糊,故这次采用渐进的方式来学习文件上传的原理与实践.该博客重在实践. 一.Http协议原理简介 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HT

文件上传的三种模式-Java

转载自: http://www.myexception.cn/web/1935104.html 文件上传的三种方式-Java 前言:因自己负责的项目(jetty内嵌启动的SpringMvc)中需要实现文件上传,而自己对java文件上传这一块未接触过,且对 Http 协议较模糊,故这次采用渐进的方式来学习文件上传的原理与实践.该博客重在实践.   一. Http协议原理简介     HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经