python urllib2.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={"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之一

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值