首页 > 代码库 > Python urllib2 发送HTTP Request
Python urllib2 发送HTTP Request
urllib2 是Python自带的标准模块, 用来发送HTTP Request的。 类似于 .NET中的, HttpWebRequest类
urllib2 的优点
Python urllib2 发出的HTTP Request, 能自动被Fiddler截获, 方便了调试。
Python 可以自动处理Cookie
urllib2 的缺点
Python urllib2 发出的http Request, 中的header 会被修改成“首字母大写”,
比如你的代码里写的header 是: content-TYPE=application/x-www-form-urlencoded , 会被修改为 Content-Type=application/x-www-form-urlencoded
实例一, Get方法, 并且自定义header
# -* - coding: UTF-8 -* - import urllib2 request = urllib2.Request("http://www.baidu.com/") request.add_header(‘content-TYPE‘, ‘application/x-www-form-urlencoded‘) response = urllib2.urlopen(request) print response.getcode() print response.geturl() print response.read()
实例二, post方法
# -* - coding: UTF-8 -* - import urllib2 import urllib request = urllib2.Request("http://passport.cnblogs.com/login.aspx") request.add_header(‘content-TYPE‘, ‘application/x-www-form-urlencoded‘) data=http://www.mamicode.com/{"tbUserName":"test_username", "tbPassword":"test_password"} response = urllib2.urlopen(request, urllib.urlencode(data)) print response.getcode() print response.geturl() print response.read()
实例三: Cookie 的处理
# -* - coding: UTF-8 -* - import urllib2 import urllib import cookielib cj = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) request = urllib2.Request("https://dynamic.12306.cn/otsweb/") request.add_header(‘content-TYPE‘, ‘application/x-www-form-urlencoded‘) data=http://www.mamicode.com/{"tbUserName":"test_username", "tbPassword":"test_password"} response = opener.open(request, urllib.urlencode(data)) # send again, you will see cookie sent to web server response = opener.open(request, urllib.urlencode(data)) print response.getcode() print response.geturl() print response.read()
实例四:如何处理跳转
创建Opener时, ul2.HTTPRedirectHandler是默认被加上的handler之一
Python urllib2 发送HTTP Request
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。