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之一

时间: 2024-12-20 16:06:33

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 是: conte

Python Urllib2和Cookielib的综合使用

Python Urllib2和Cookielib的综合使用 标签(空格分隔): Python Urllib2 Fetch 手动添加请求的Headers,在opener,Request,urlopen,看看有几种方法可以使用相同的Headers处理不同的网页: 设定CookieJar,设定cookielib.Cookie() 手动添加Headers,并设定CookieJar,看看能否自动处理: 1.手动添加Headers 1.1 添加到opener上 ? 1 2 3 4 5 6 7 8 opene

python urllib2介绍

urllib2是Python的一个获取URLs(Uniform Resource Locators)的组件.他以urlopen函数的形式提供了一个非常简单的接口, 这是具有利用不同协议获取URLs的能力,他同样提供了一个比较复杂的接口来处理一般情况,例如:基础验证,cookies,代理和其他. 它们通过handlers和openers的对象提供. urllib2支持获取不同格式的URLs(在URL的":"前定义的字串,例如:"ftp"是"ftp:pytho

python urllib2详解及实例

urllib2是Python的一个获取URLs(Uniform Resource Locators)的组件.他以urlopen函数的形式提供了一个非常简单的接口, 这是具有利用不同协议获取URLs的能力,他同样提供了一个比较复杂的接口来处理一般情况,例如:基础验证,cookies,代理和其他. 它们通过handlers和openers的对象提供. urllib2支持获取不同格式的URLs(在URL的":"前定义的字串,例如:"ftp"是"ftp:pytho

python urllib2 http get、post请求的区别

python urllib2 实现HTTP 的GET POST 请求 python 一般可以用模块urllib2 来实现GET POST的http 请求 GET  请求 import os,sys import os,sys import urllib2 http_str = 'http://127.0.0.1:12345/apps/' + serviceLine + '/clusters/' + clusterName url = http_str + '/machine_info' req

python urllib2使用心得

python urllib2使用心得 1.http GET请求 过程:获取返回结果,关闭连接,打印结果 f = urllib2.urlopen(req, timeout=10) the_page = f.read() f.close()print the_page 2.http GET请求 + 包头 paras = "Token=1234567890;Uuid=0987654321" send_headers = {"Cookie": paras, "Us

Fiddler (三) Composer创建和发送HTTP Request

Fiddler (三) Composer创建和发送HTTP Request 之前已经写过两篇Fiddler的文章了,分别是[Fiddler教程] [Fiddler script用法].  我准备把Fiddler写成一个系列. Fiddler的功能还有很多, 很多功能都没有被挖掘出来.这次我们介绍Fiddler中的一个非常有用的功能Composer,是用来创建和发送HTTP Request的.Composer的使用方法很简单,看下就知道用了. 阅读目录 Fiddler Composer介绍 Fid

苹果iOS8使用随机MAC地址发送probe request的真正目的

现在众所周知,苹果在新的iPhone6中,会使用随机的MAC地址发送probe request 根据苹果自己的宣传,及目前大家的理解 苹果充分考虑了大家的隐私问题,避免了手机MAC地址的泄露 根据目前的测试情况,iPhone6只是在黑屏休眠的时候才会发送随机MAC 那么从另一方面来看 在手机休眠的时候完全可以不发送任何无线报文 这样才更合理,并保护手机MAC地址不泄露 但是苹果却保留发送probe request,只是使用了随机MAC地址而已 其实苹果的真正目的是收集周围的AP热点信息 而所谓的

python urllib2 模拟网站登陆

1. 可用浏览器先登陆,然后查看网页源码,分析登录表单 2. 使用python urllib2,cookielib 模拟网页登录 import urllib,urllib2,cookielib #urllib2 支持 http,https def loginWeb(site,user,pwd): ''' 模拟网页登陆,登陆网址,用户名,密码不能为空 登录post form 表单逻辑需要对应登录网站,可以使用火狐浏览器firebug插件查看登陆请求的网址和参数 ''' formValue={'ac