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={"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={"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之一 。
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦