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-10-06 00:49:18

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

python自动化测试学习笔记-6urllib模块&request模块

python3的urllib 模块提供了获取页面的功能. urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None) -         url:  需要打开的网址 -         data:Post提交的数据 -         timeout:设置网站的访问超时时间 直接用urllib.request模块的urlopen()获取页

python中urllib, urllib2,urllib3, httplib,httplib2, request的区别

permike原文python中urllib, urllib2,urllib3, httplib,httplib2, request的区别 若只使用python3.X, 下面可以不看了, 记住有个urllib的库就行了 python2.X 有这些库名可用: urllib, urllib2, urllib3, httplib, httplib2, requests python3.X 有这些库名可用: urllib, urllib3, httplib2, requests 两者都有的urllib3

零基础写python爬虫之urllib2使用指南

零基础写python爬虫之urllib2使用指南 前面说到了urllib2的简单入门,下面整理了一部分urllib2的使用细节. 1.Proxy 的设置 urllib2 默认会使用环境变量 http_proxy 来设置 HTTP Proxy. 如果想在程序中明确控制 Proxy 而不受环境变量的影响,可以使用代理. 新建test14来实现一个简单的代理Demo: import urllib2   enable_proxy = True   proxy_handler = urllib2.Prox

python接口测试之urllib2的应用(十五)

作者 无涯 在接口测试中或者说在网络爬虫中,urllib2库是必须要掌握的一个库,当然还有优秀的requests库,今天重点来说urllib2库在接口测试中的应用. urllib2定义了很多的函数和类,这些函数和类能够帮助我们在复杂情况下获取URLS的内容.这些情况包含了对headers的添加,cookie的处理,代理, 超时,鉴权等的处理.如果想详细的了解urllib2库,建议到官方查看,官方地址:https://docs.python.org/2/library/urllib2.html.查

Python:urllib和urllib2的区别(转)

原文链接:http://www.cnblogs.com/yuxc/ 作为一个Python菜鸟,之前一直懵懂于urllib和urllib2,以为2是1的升级版.今天看到老外写的一篇<Python: difference between urllib and urllib2>才明白其中的区别. You might be intrigued by the existence of two separate URL modules in Python -urllib and urllib2. Even

python例子-urllib,urllib2练习题合集.

#!/usr/bin/python #coding:utf-8 import time import urllib import urllib2 from bs4 import BeautifulSoup import re import cookielib def main0(): unix_timenow = int(time.time()) print '当前时间:%d' % unix_timenow timenow = time.strftime('%Y-%m-%d %H:%M:%S',

python进阶九_网络编程(一)

Python网络编程一 一.一些基本概念 在Python网络编程这一节中会涉及到很多网络相关的术语,对于一些最基本的概念,如TCP/IP,Socket等等不再赘述,不明白的可以自己去查一查,对于一些常见但是可能不是很熟悉的术语这里做了一个简要的介绍,后续遇到不会因此止步. SNTP:简单网络时间协议(Simple Network Time  Protocol)简单来说就是用来同步因特网中的计算机时钟,需要注意的是这里的SNTP是用户数据报(UDP)协议. MIME:Multipurpose In

python selenium2示例 - email发送

前言 在进行日常的自动化测试实践中,我们总是需要将测试过程中的记录.结果等等等相关信息通过自动的手段发送给相关人员.python的smtplib.email模块为我们提供了很好的email发送等功能的实现. 纯文本邮件 在通常情况下,我们需要发送大量的纯文本类的邮件通知,或是发送概要性测试报告时,会用到此类发送方式,示例代码如下: #-*- coding:utf-8 -*- __author__ = u'苦叶子' import smtplib from email.mime.text impor