参考博客: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. codeforces 355C - Vasya and Robot

    因为在允许的情况下,必然是左右手交替进行,这样不会增加多余的无谓的能量. 然后根据不同的分界点,肯定会产生左手或右手重复使用的情况,这是就要加上Qr/Ql * 次数. 一开始的想法,很直接,枚举每个分 ...

  2. redis两种持久化方式的优缺点

    redis两种持久化的方式 RDB持久化可以在指定的时间间隔内生成数据集的时间点快照 AOF持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集,AOF文件中全部以 ...

  3. array string mysql IN LIKE

    $ids = $_POST['ids']; $str = implode(',',$ids); $str = '('.$str.')'; $db_region->region_del($str) ...

  4. centos 7 update to python V3.43 to assure git clone as usual

    vim /usr/bin/yum vim /usr/libexec/urlgrabber-ext-down yum update -y nss curl libcurl

  5. 2018/03/27 每日一个Linux命令 之 cron

    Cron 用于配置定时任务. -- 环境为 Ubuntu16-04 -- 先说说怎么配置一个简单的定时任务.直观的可以看到效果. 之前在网上查找资料,对Shell编程不熟悉的实在是很头疼,走了不少弯路 ...

  6. 洛谷P2414 阿狸的打字机 [NOI2011] AC自动机+树状数组/线段树

    正解:AC自动机+树状数组/线段树 解题报告: 传送门! 这道题,首先想到暴力思路还是不难的,首先看到y有那么多个,菜鸡如我还不怎么会可持久化之类的,那就直接排个序什么的然后按顺序做就好,这样听说有7 ...

  7. 浅谈CSRF攻击方式(转)

    add by zhj: 在看Django开发的应用时,看到了CSRF,然后搜到了这篇文章,讲的不错.其实CSRF 攻击也蛮简单的.当你登陆网站A后,会在本地存有cookie,在cookie没有过期的情 ...

  8. Idempotent --------幂等

    1.在某二元运算下,幂等元素是指被自己重复运算的结果等于它自己的元素.例如,乘法下唯一两个幂等实数为0和1.

  9. 如何让dedecms文章点击量增加一定的数值

    用dedecms建站都知道有一个文章点击量这个参数,我们可不可以用这个浏览量做些延伸扩展呢?比如加上一个固定值变成另外一个指标.很多朋友已经想到了,如下图,我们将本文浏览量286设为点击量,加上300 ...

  10. 怎样知道 CPU 是否支持虚拟化技术(VT) | Linux 中国

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/F8qG7f9YD02Pe/article/details/79832475 wx_fmt=png&a ...