python urllib模块学习笔记

这个模块是最基本最常用的,以前看过,总结一下

复制代码
# coding : utf-8
import urllib

url = 'http://cnblogs.com'

#代理服务器
proxies = {'http':'http://127.0.0.1:8087'}
#使用代理服务器打开
r = urllib.urlopen(url,proxies = proxies)

print r.info()
print r.getcode()
print r.geturl()

#打开本地文件
f = urllib.urlopen(url = 'file:/home/ma6174/a.sh')
print f.read()

#打开ftp
#
f = urllib.urlopen(url = 'ftp://username:password@ftpaddress')

#保存网页并显示进度
def cbk(a, b, c):
        '''
        a: num
        b: size
        c: total
        
'''
        per = 100.0*a*b/c
        if per > 100:
                per = 100
        print '%.2f%%' % per

local = 'cnblogs.html'
urllib.urlretrieve(url,local,cbk)

#get方法
params = urllib.urlencode({'spam': 1, 'eggs': 2, 'bacon': 0})
f = urllib.urlopen("http://www.musi-cal.com/cgi-bin/query?%s" % params)
print f.read()

#post方法
params = urllib.urlencode({'spam': 1, 'eggs': 2, 'bacon': 0})
f = urllib.urlopen("http://www.musi-cal.com/cgi-bin/query", params)
print f.read()

#编码解码
data = 'name = ~a+3'  

data1 = urllib.quote(data)   
print data1 # result: name%20%3D%20%7Ea%2B3   
print urllib.unquote(data1) # result: name = ~a+3   
  
data2 = urllib.quote_plus(data)   
print data2 # result: name+%3D+%7Ea%2B3   
print urllib.unquote_plus(data2)    # result: name = ~a+3   
  
data3 = urllib.urlencode({ 'name''dark-bull''age': 200 })   
print data3 # result: age=200&name=dark-bull   
  
data4 = urllib.pathname2url(r'd:/a/b/c/23.php')   
print data4 # result: ///D|/a/b/c/23.php   
print urllib.url2pathname(data4)    # result: D:/a/b/c/23.php  
复制代码


博主ma6174对本博客文章(除转载的)享有版权,未经许可不得用于商业用途。转载请注明出处http://www.cnblogs.com/ma6174/

对文章有啥看法或建议,可以评论或发电子邮件到ma6174@163.com


本文转自ma6174博客园博客,原文链接:http://www.cnblogs.com/ma6174/archive/2012/07/24/2606018.html,如需转载请自行联系原作者

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/455420.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hibernate基础工具findBySQL学习

public List<Map<String,Object>> findBySQL(String sql,Map<String,Object> param,int start,int max) {log.debug("finding List by hql");try {       //最后返回map map的key可为别名和数据库字段SQLQuery querysessionFactory.getCurr…

python处理ini文件_python对ini配置文件处理

>>> cf.read("test.ini") #读取配置文件[test.ini]>>> cf.sections() #片段名[base, callback]>>> cf.options("callback") #配置…

Python实现自动推本地github博客到远程仓库

Python实现自动推本地github博客到远程仓库 以前的简单版本 通过python中的os模块操作系统命令 详情可参考:Python实现一行代码推本地git到远程仓库 升级版本 本次加入了监听文件修改功能 这样脚本只需在后台运行,即可检测到对应的文件夹中的内容是否变化 如果变化,则调用…

H.264/MPEG-4 AVC

维基百科&#xff0c;自由的百科全书跳转到&#xff1a; 导航, 搜索 跳过字词转换说明 汉漢▼▲为了阅读方便&#xff0c;本文使用全文手工轉換。转换内容&#xff1a;本文采用电脑和信息技术组全文转换 [查看] • [编辑] • [强制刷新] 以下為本條目單獨的全文轉換&#xff0c…

JavaScript 专题之函数柯里化

JavaScript 专题系列第十三篇&#xff0c;讲解函数柯里化以及如何实现一个 curry 函数 定义 维基百科中对柯里化 (Currying) 的定义为&#xff1a; In mathematics and computer science, currying is the technique of translating the evaluation of a function that takes m…

机器学习模板

根据心情补充&#xff0c;语言都是Python hash&#xff0c;把所有的文本转化成数字 from sklearn.preprocessing import LabelEncoder for c in train.columns:if train[c].dtype object:lbl LabelEncoder()lbl.fit(list(train[c].values) list(test[c].values))train[c] l…

漂亮特殊字体可复制_12个创意字体免费下载网站

今天为大家介绍12个创意字体的网站&#xff0c;这些网站都有提供免费下载的字体哦&#xff0c;希望对大家在创作上面有所帮助。FontSpace在Fontspace上有超过42000种免费字体。在这里字体被整齐的分门归类&#xff0c;帮助你找到想要的字体。除了典型的“serif” “script”等&…

使用postman测试接口

Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。在java web开发中使用非常多&#xff0c;经常用来测试接口。 使用postman模拟json数据的发送 第一步:在header里边设置发送数据的类型 Paste_Image.png设置发送数据类型为json&#xff0c;也就是key为Content-…

删除github上的commit历史记录

删除github上的commit历史记录 起步 今天小编发现了git克隆下来的远程库特别大: 经过查询之后发现是每次推送之后都会留下记录缓存&#xff0c;这样很多没用的记录就会占用多余的空间&#xff0c;别人克隆的时候也会多耗费时间&#xff0c;今天我查到了一个清除无用记录的方…

DirectShow组件原理分析及应用

1 DirectX简介  DirectX是Microsoft公司为游戏和其他高性能多媒体应用所提供的一套底层应用程序编程接口。这些接口包括对二维和三维图形&#xff0c;声效和音乐&#xff0c;输入设备以及多玩家网络游戏等的支持。目前DirectX的最高版本是DirectX 9.0。  1.1 DirectX的组成…

接口安全

老大发了篇文章&#xff0c;让看如何写出安全的接口。 如何写出安全的API接口&#xff1f;接口参数加密签名设计思路转载于:https://www.cnblogs.com/Tpf386/p/7053795.html

python中xml模块_python学习第十五天-2(XML模块)

也是一种文本转换形式。importxxxxxxxxxxxxxxxxxxx asxx,可以用xx代替xxxxxxxxxxxxxxxxxxx模块xml文件的新增&#xff0c;修改&#xff0c;删除&#xff0c;查询。新增&#xff1a;​import xml.etree.ElementTreeas ET​new_xmlET.Element(nameList)#创建xml的根节点相当于na…

ubuntu系统下Java环境JDK的安装

Debian Linux下安装jdk 下载压缩包 官网下载对应的.gz包 点击下载 解压文件 创建一个目录用于存放解压后的文件&#xff0c;并解压缩到该目录下 sudo mkdir /opt/java8 sudo tar -zxvf jdk-8u221-linux-x64.tar.gz -C /opt/java8修改环境变量 sudo vim ~/.bashrc 进入…

栈溢出笔记1.3 准备Shellcode

经过1.1和1.2节的讲述&#xff0c;我们已经知道了怎样更改EIP的值。程序运行函数之后将跳转到我们设定的位置開始运行&#xff0c;因此&#xff0c;我们须要准备一个自己的程序&#xff0c;接手后面的工作。这是一个什么样的程序&#xff1f;是一个C语言编写的代码&#xff1f;…

DirectShow开发快速入门之慨述

文章来源&#xff1a;http://tech.163.com/school 2005-08-18 10:21:32 来源: 天极网摘要&#xff1a;本篇文档概括性的介绍了DirectShow的主要组成部分&#xff0c;以及一些Directshow的基本概念。熟悉这些基本的知识对于Directshow的应用开发或者过滤器的开发者都会有所帮助…

Android selector中的item的顺序

在selector中&#xff0c;要将默认状态的item放在最后面&#xff0c;因为一旦前面的item满足匹配条件&#xff0c;后面的item就不会去匹配。因此&#xff0c;把默认状态的item放在前面的话&#xff0c;后面的item没有执行的机会转载于:https://www.cnblogs.com/xiaoyuersdch/p/…

权限表使用联合主键吗_天天写 order by,你知道Mysql底层执行流程吗?

前言 在实际的开发中一定会碰到根据某个字段进行排序后来显示结果的需求&#xff0c;但是你真的理解order by在 Mysql 底层是如何执行的吗&#xff1f;假设你要查询城市是苏州的所有人名字&#xff0c;并且按照姓名进行排序返回前 1000 个人的姓名、年龄&#xff0c;这条 sql 语…

nodejs简介

nodejs是啥&#xff1f; Node.js是运行在服务端的JavaScript。 Node.js是一个基于Chrome JavaScript运行时建立的一个平台。 Node.js是一个事件驱动I/O服务端JavaScript环境&#xff0c;基于Google的V8引擎&#xff0c;V8引擎执行Javascript的速度非常快&#xff0c;性能非常…

jumpserver v0.4.0 基于 CenOS7 的安装详解

标签&#xff08;linux&#xff09;&#xff1a; jumpserver 笔者Q:972581034 交流群&#xff1a;605799367。有任何疑问可与笔者或加群交流 首首先使用Jumpserver前要理解清楚这三个用户关系: 1.用户&#xff1a; 是指你在web上创建的用户,会在跳板机上创建这个用户,作用就是用…

Node.js中事件的循环

Node.js 事件循环 Node.js 是单进程单线程应用程序&#xff0c;但是通过事件和回调支持并发&#xff0c;所以性能非常高。 Node.js 的每一个 API 都是异步的&#xff0c;并作为一个独立线程运行&#xff0c;使用异步函数调用&#xff0c;并处理并发。 Node.js 基本上所有的事…