>>> 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请求服务器图片并下载到本地磁盘的更多相关文章

  1. Windows平台将远程服务器的目录挂载为本地磁盘

    我们在设置数据库自动备份时,为了数据的安全往往需要直接将数据备份到远程服务器上.在Linux可以通过NFS挂载来实现,在Windows平台可以直接通过net use+subst来实现将远程服务器的目录 ...

  2. HttpClient请求服务器图片

    我们先引入一个IO流相关的Jar包, 从apache下载 下载后,jar包和源码如图: 我们只需要将jar包引入项目: 之后我们使用FileUtils这个类,其中有一个文件复制方法. 我们将请求的图片 ...

  3. python请求服务器时如何隐藏User-Agent

    本文结合上一篇文章“python利用有道翻译实现“语言翻译器”的功能”的实现代码,对其进行加工,实现请求服务器时隐藏User-Agent. python实现隐藏User-Agent的一般做法有两种: ...

  4. iOS 通过网络请求获取图片的下载歌曲

    1.导入代理<NSURLConnectionDataDelegate> @interface ViewController ()<NSURLConnectionDataDelegat ...

  5. python——请求服务器(http请求和https请求)

    一.http请求 1.http请求方式:get和post get一般用于获取/查询资源信息,在浏览器中直接输入url+请求参数点击enter之后连接成功服务器就能获取到的内容,post请求一般用于更新 ...

  6. PHP修改css文件中的背景图片并下载到本地

    扒网站当中一般css中的图片扒不下来,这个脚本就是用来下载这些图片到本地的 流程 1.获取css文件路径 2.打开文件逐行读取判断是否包含需要的图片 2.1 包含则 -进行截取直接获取到相对路径 2. ...

  7. php将抓取的图片链接下载到本地

    备注: fclose这一步操作完成之后如果返回值是空表示下载成功,否则会返回1或者其他错误提示 这个步骤测试的时候实在yii2框架的基础上执行的,下载到的图片实在frontend目录下的web目录下( ...

  8. H5页面转成图片并下载到本地

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  9. python 生成excel,并下载到本地

    from django.shortcuts import reverse,redirect,render from operations import models import xlwt impor ...

随机推荐

  1. cocos creator destroy方法

    node.destroy(),Node.destroyAllChildren并不会立即销毁,实际销毁操作会延迟到当前帧渲染前执行. 这段话可能不明白,但是在Node.destroyAllChildre ...

  2. Linux命令(文本编辑器)

    vi和vim编辑器:有插入模式,一般模式,地行模式 一班模式通过(i.a.o.I.A.O)键--->进入插入模式            插入模式(按Esc键退出)---->j进入一班模式 ...

  3. sql的四种连接方式

    1.内联接.(典型的联接运算,使用像 =  或 <> 之类的比较运算符).包括相等联接和自然联接. 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行.例如,检索 students ...

  4. 基础:Post和Get区别

    1.get是从服务器上获取数据,post是向服务器传送数据.2.在客户端, get方式在通过URL提交数据,数据在URL中可以看到:post方式,数据放置在HTML HEADER内提交3.对于get方 ...

  5. 【LeetCode】3 、Longest Substring Without Repeating Characters

    题目等级:Medium 题目描述:   Given a string, find the length of the longest substring without repeating chara ...

  6. js的StringBuffer类

    function StringBuffer(str){ var arr = []; str = str || ""; arr.push(str); this.append = fu ...

  7. Linux之iptables(四、网络防火墙及NAT)

    网络防火墙 iptables/netfilter网络防火墙: (1) 充当网关 (2) 使用filter表的FORWARD链 注意的问题: (1) 请求-响应报文均会经由FORWARD链,要注意规则的 ...

  8. Linux之ssh中XSHELL无法连接解决方案

    查漏补缺,理解概念,及时总结,互相交流,欢迎拍砖. 目前遇到的大致有以下几个问题分类: 网络是否连通.防火墙策略.DNS解析问题.端口是否开启.selinux是否开启-- 1.网络连通: 是否在同一网 ...

  9. 【转载】Apache shutdown unexpectedly启动错误解决方法

    http://blog.csdn.net/dong123dddd/article/details/21372179 xampp启动时显示的错误为: 9:52:41  [Apache] Attempti ...

  10. ThinkPHP5 自定义异常

    1.配置config.php 自定义异常路径: // 默认AJAX 数据返回格式,可选json xml ...'default_ajax_return' => 'json', 'exceptio ...