参考博客:https://blog.csdn.net/chendong_/article/details/51973499

1.1 urllib2发送get请求

# -*- coding:UTF-8 -*-
import urllib2 response = urllib2.urlopen("https://www.baidu.com/")
print response.read()

urllib2.urlopen(url) 不带参数的get请求 :法1

# -*- coding:UTF-8 -*-

import urllib2
import urllib url = 'http://127.0.0.1:8000/login/?'
para = {'name':'zhangsan','age':100}
req = urllib2.Request(url + urllib.urlencode(para))
page = urllib2.urlopen(req)
print page.read() # 服务器端结果:{u'name': [u'zhangsan']

urllib2.Request(url,data) 带参数的get请求:法2

1.2 urllib2发送post请求

# -*- coding:UTF-8 -*-

import urllib2
import urllib
values = {'username':'zhangsan','pwd':''}
data = urllib.urlencode(values)
url = "http://127.0.0.1:8000/login/"
request = urllib2.Request(url, data)
response = urllib2.urlopen(request)
print response.read()

urllib2发送post请求

import urllib2
import json data = {
'a': 123,
'b': 456
}
headers = {'Content-Type': 'application/json'}
request = urllib2.Request(url='url', headers=headers, data=json.dumps(data))
response = urllib2.urlopen(request)

post方式发送json参数

1.3 高级用法:设置Headers

# -*- coding:UTF-8 -*-

import urllib2
import urllib url = 'http://127.0.0.1:8000/login/'
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
values = {"username":"1098918523@qq.com", "password":"341204baiduhi"}
headers = {'User_Agent': user_agent}
data = urllib.urlencode(values)
request = urllib2.Request(url, data, headers)
response = urllib2.urlopen(request)
print response.read()

urllib2设置请求头信息

1.4 urllib2发送put请求

def send_put(url,values):
data = {
'a': 123,
'b': 456
}
headers = {'Content-Type': 'application/json'}
request = urllib2.Request(url=url, headers=headers, data=json.dumps(data))
request.get_method = lambda: 'PUT'
response = urllib2.urlopen(request)
print response.read() if __name__=="__main__":
values = {'name':'新添加组01','fid':''}
url = "http://127.0.0.1:8000/api/operate/dept"
send_put(url,values)

urllib2发送put请求

1.5 python2中urllib2对url进行urlencode与unquote

  1、encode和unquote仅对一个字符串进行转换

import urllib
s = '张三'
s_encode = urllib.quote(s)
print s_encode
# 执行结果:%E5%BC%A0%E4%B8%89

encode

#2、url unquote
import urllib
s = '%E5%BC%A0%E4%B8%89'
s_decode = urllib.unquote(s)
print s_decode
# 执行结果:张三

unquote

  2、urlencode 

# 1、urlencode
import urllib
data={"name":"张三","sex":"男"}
print urllib.urlencode(data)
# 执行结果:name=%E5%BC%A0%E4%B8%89&sex=%E7%94%B7 # 2、unquote解析url
data = 'name=%E5%BC%A0%E4%B8%89&sex=%E7%94%B7'
print urllib.unquote(data)
# 执行结果:name=张三&sex=男

urlencode

07:urllib与urllib2基本使用的更多相关文章

  1. [转]Python中urllib与urllib2的区别与联系

    引用文章1:http://my.oschina.net/u/558071/blog/144792 引用文章2:http://zhuoqiang.me/python-urllib2-usage.html ...

  2. python基于http协议编程:httplib,urllib和urllib2<转>

    httplib实现了HTTP和HTTPS的客户端协议,一般不直接使用,在python更高层的封装模块中(urllib,urllib2)使用了它的http实现. httplib.HTTPConnecti ...

  3. Python:urllib和urllib2的区别

    urllib和urllib2都是处理url请求的两个模块,但是相互之间存在不同,不能相互取代 urllib2可以接受一个Reuqest类的实例来设置URL请求的headers,urllib仅可以接受U ...

  4. Python标准库之urllib,urllib2

    urllib模块提供了一些高级接口,用于编写需要与HTTP服务器交互的客户端.典型的应用程序包括从网页抓取数据.自动化.代理.网页爬虫等. 在Python 2中,urllib功能分散在几个不同的库模块 ...

  5. Python:urllib和urllib2的区别(转)

    原文链接:http://www.cnblogs.com/yuxc/ 作为一个Python菜鸟,之前一直懵懂于urllib和urllib2,以为2是1的升级版.今天看到老外写的一篇<Python: ...

  6. Python urllib和urllib2模块学习(二)

    一.urllib其它函数 前面介绍了 urllib 模块,以及它常用的 urlopen() 和 urlretrieve()函数的使用介绍.当然 urllib 还有一些其它很有用的辅助方法,比如对 ur ...

  7. Python urllib和urllib2模块学习(一)

    (参考资料:现代魔法学院 http://www.nowamagic.net/academy/detail/1302803) Python标准库中有许多实用的工具类,但是在具体使用时,标准库文档上对使用 ...

  8. 深入理解urllib、urllib2及requests

    urllib and urllib2 区别 –博主提示:下面的是python2中的用法,python3需要做出相应修改. urllib和urllib2模块都做与请求URL相关的操作,但他们提供不同的功 ...

  9. python urllib和urllib2 区别

    python有一个基础的库叫httplib.httplib实现了HTTP和HTTPS的客户端协议,一般不直接使用,在python更高层的封装模块中(urllib,urllib2)使用了它的http实现 ...

  10. httplib,urllib和urllib2

    一.httplib实现了HTTP和HTTPS的客户端协议,一般不直接使用,在python更高层的封装模块中(urllib,urllib2)使用了它的http实现. import httplib con ...

随机推荐

  1. poj3252Round Numbers【组合数】【数位dp】

    Round Numbers The cows, as you know, have no fingers or thumbs and thus are unable to play Scissors, ...

  2. iOS电话等中断事件的开始和结束通知

    #import "ViewController.h" #import <AVFoundation/AVFoundation.h> @interface ViewCont ...

  3. ndk http://www.th7.cn/Program/Android/201412/334955.shtml

    http://www.th7.cn/Program/Android/201412/334955.shtml http://ruikye.com/2014/08/30/androidstudio_ndk ...

  4. 学习计划 mysql explain执行计划任务详解

    我们在之前已经找到了需要优化的SQL,但是怎么知道它的那些方面需要优化呢? explain就是为了这个使用的. explain显示了 mysql 如何使用索引来处理select语句以及连接表.可以帮助 ...

  5. mongodb基础语法

    Mongodb与关系型数据库最大的区别就是无约束, 既无字段(外键等)约束, 也没有数据类型约束, 以json存储 安装 启动Mongodb(默认在c盘找 data/db/文件夹) 服务端: mong ...

  6. 高并发秒杀系统方案(JSR303参数校验)

    <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring- ...

  7. kettle 安装mysql 驱动

    错误连接数据库 [mysql] : org.pentaho.di.core.exception.KettleDatabaseException: Error occurred while trying ...

  8. SQL 2

    SQL SELECT 语句 SELECT 语句用于从数据库中选取数据. SQL SELECT 语句 SELECT 语句用于从数据库中选取数据. 结果被存储在一个结果表中,称为结果集. SQL SELE ...

  9. [py]处理文件的3个方法

    file处理的3个方法: f和f.readlines效果一样 # f.read() 所有行 -> 字符串 # f.readline 读取一行 -> 字符串 # f.readlines 所有 ...

  10. 微信小程序----团购或秒杀的批量倒计时实现

    效果图 实现思路微信小程序实现倒计时,可以将倒计时的时间进行每一秒的计算和渲染! JS模拟商品列表数据 goodsList:在 onLoad 周期函数中对活动结束时间进行提取:建立时间格式化函数 ti ...