python请求服务器图片并下载到本地磁盘
>>> import os
>>> os.getcwd()
'C:\\Python33'
>>> os.chdir('E:\\python\\mmy')
>>> os.getcwd()
'E:\\python\\mmy'
>>> import urllib.request
>>> urllib.request.urlopen('http://image.edai.com/avatar/000/88/14/23_avatar_middle.jpg')
<http.client.HTTPResponse object at 0x00000000032E0FD0>
>>> response = urllib.request.urlopen('http://image.edai.com/avatar/000/88/14/23_avatar_middle.jpg')
>>> response.getcode()
200
>>> response.geturl()
'http://image.edai.com/avatar/000/88/14/23_avatar_middle.jpg'
>>> response.info()
<http.client.HTTPMessage object at 0x00000000032ED6A0>
>>> print(response.info())
Expires: Thu, 31 Dec 2037 23:55:55 GMT
Date: Sat, 30 Jan 2016 13:18:38 GMT
Server: nginx/0.8.42
Content-Type: image/jpeg
Content-Length: 8053
Last-Modified: Thu, 08 Jan 2015 06:46:11 GMT
Pragma: public
Accept-Ranges: bytes
Age: 1
X-Via: 1.1 scxx84:1 (Cdn Cache Server V2.0)
Connection: close
Cache-Control: public, must-revalidate, proxy-revalidate >>> pic = response.read()
>>> with open('liuhui.jpg', 'wb') as f:
f.write(pic) 8053
>>>

在本地磁盘已经有了liuhui.jpg了!!!
以上代码是在idle下操作的,其实真实的代码只有如下:
import urllib.request
response = urllib.request.urlopen('http://image.edai.com/avatar/000/88/14/23_avatar_middle.jpg')
pic = response.read()
with open('liuhui.jpg', 'wb') as f:
    f.write(pic)
注:
1.urlopen()的参数可以是一个字符串或一个request对象,当为一个字符串时,其实是执行了两个步骤:
(1)req = urllib.request.Request('http://image.edai.com/avatar/000/88/14/23_avatar_middle.jpg');
(2)response = urllib.request.urlopen(req).
2.urllib.request.urlopen()的返回值是一个http.client.HTTPResponse对象,即客户端http响应结果对象。我们知道http协议,对客户端请求是需要响应的,而响应的数据包还包含了http头部信息。因此,urllib.request.urlopen()返回的对象还有以下3个重要的方法:
(1)getcode(): Htpp状态码
(2)geturl():客户端请求的url地址
(3)info():就是http的头部信息(header)
python请求服务器图片并下载到本地磁盘的更多相关文章
- Windows平台将远程服务器的目录挂载为本地磁盘
		我们在设置数据库自动备份时,为了数据的安全往往需要直接将数据备份到远程服务器上.在Linux可以通过NFS挂载来实现,在Windows平台可以直接通过net use+subst来实现将远程服务器的目录 ... 
- HttpClient请求服务器图片
		我们先引入一个IO流相关的Jar包, 从apache下载 下载后,jar包和源码如图: 我们只需要将jar包引入项目: 之后我们使用FileUtils这个类,其中有一个文件复制方法. 我们将请求的图片 ... 
- python请求服务器时如何隐藏User-Agent
		本文结合上一篇文章“python利用有道翻译实现“语言翻译器”的功能”的实现代码,对其进行加工,实现请求服务器时隐藏User-Agent. python实现隐藏User-Agent的一般做法有两种: ... 
- iOS 通过网络请求获取图片的下载歌曲
		1.导入代理<NSURLConnectionDataDelegate> @interface ViewController ()<NSURLConnectionDataDelegat ... 
- python——请求服务器(http请求和https请求)
		一.http请求 1.http请求方式:get和post get一般用于获取/查询资源信息,在浏览器中直接输入url+请求参数点击enter之后连接成功服务器就能获取到的内容,post请求一般用于更新 ... 
- PHP修改css文件中的背景图片并下载到本地
		扒网站当中一般css中的图片扒不下来,这个脚本就是用来下载这些图片到本地的 流程 1.获取css文件路径 2.打开文件逐行读取判断是否包含需要的图片 2.1 包含则 -进行截取直接获取到相对路径 2. ... 
- php将抓取的图片链接下载到本地
		备注: fclose这一步操作完成之后如果返回值是空表示下载成功,否则会返回1或者其他错误提示 这个步骤测试的时候实在yii2框架的基础上执行的,下载到的图片实在frontend目录下的web目录下( ... 
- H5页面转成图片并下载到本地
		<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ... 
- python 生成excel,并下载到本地
		from django.shortcuts import reverse,redirect,render from operations import models import xlwt impor ... 
随机推荐
- CAD调用移动命令
			主要用到函数说明: _DMxDrawX::SendStringToExecuteFun 把命令当着函数执行,可以传参数,详细说明如下: 参数 说明 IDispatch* pParam 命令参数,IMx ... 
- Vue和JQuery相比,除了节省了开发成本,还有什么优点?
			1.模块化,变量都是私有作用域,JQuery只能用全局变量.闭包,影响性能 2.组件化 3.因为1,所以方便维护 vuex 要注意刷新清空的问题 vue-router是局部刷新,window.loca ... 
- python中zip( )的使用
			zip函数简单用法 x = [1, 2, 3] y = [4, 5, 6] z = [7, 8, 9] xyz = zip(x,y,z) #得到一个zip对象 xyz #打印结果为<zip ob ... 
- Nodejs介绍及其安装
			一.Nodejs介绍 Nodejs英文网:https://nodejs.org/en/ Nodejs中文网:http://nodejs.cn/ Node.js 是一个基于 Chrome V8 引擎的 ... 
- 一个电商项目的Web服务化改造4:方案和架构,通用接口的定义和实现
			最近一直在做一个电商项目,需要把原有单系统架构的项目,改造成基于服务的架构,SOA. 有点挑战,做完了,会有很大进步. 上一篇,我们明确了我们的"规范和约定". 从 ... 
- css的基本操作学习--css样式,选择器,hover,文字属性,文本属性,背景
			什么是css? 通配符选择器 <head> /* *通配符选择器 匹配任何元素 */ *{ margin: 0; padding: 0; } </head> css样式有三种 ... 
- 申请SSL证书怎样验证域名所有权
			申请域名型证书时,系统将提供以下三种方式验证域名的所有权,请根据自己的实际情况选择其中一种进行域名验证: 1.管理员邮箱验证 系统会向你选择的管理员邮箱 发送验证邮件,能够收到验证邮件,并点击邮件中验 ... 
- 【Codeforces 467C】George and Job
			[链接] 我是链接,点我呀:) [题意] 让你从1..n这n个数字中 选出来k个不相交的长度为m的区间 然后这个k个区间的和最大 求出这k个区间的和的最大值 [题解] 设dp[i][j]表示前i个数字 ... 
- noip模拟赛 幻灯结界
			题目描述59式给你出了一道**题:有n个防御人(守方)还有n个攻击坦克(攻方)每个防御人有护甲a[i],而攻击方每个坦克有火力b[i]如果一个防守方的护甲不小于攻击方的攻击力,就可以防的住然而我们保持 ... 
- 最小生成树prime算法模板
			#include<stdio.h> #include<string.h> using namespace std; int map[505][505]; int v, e; i ... 
