我们经常会用python来进行抓包,模拟登陆等等, 势必要构造http请求包。
http的request通常有4个方法get,post,put,delete,分别对应于查询,更新,添加,删除。我们经常用到的也就get,post。
1.用python构造get
#build request for accessed url
homeReq = urllib.request.Request(
url = csdnAccessModuleUrl
)
homeReq.add_header('Accept', 'text/html, application/xhtml+xml, */*');
homeReq.add_header('Accept-Language', 'en-US')
homeReq.add_header('Accept-Encoding', 'gzip, deflate')
homeReq.add_header('Connection', 'Keep-Alive');
homeReq.add_header('Referer', 'http://passport.csdn.net/account/login?from='+urllib.parse.quote(moduleUrl))#http%3a%2f%2fwrite.blog.csdn.net%2f')
homeReq.add_header('User-Agent', 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)');
#open access url
resp = urllib.request.urlopen(homeReq)
2.用python构造post
#build request for login url
#post data
postdata = {
'u':username,
'p':password,
'remember':'1',
't':'log',
'f':urllib.parse.quote(moduleUrl),
}
postdata = urllib.parse.urlencode(postdata).encode('utf-8')
print(postdata)
req = urllib.request.Request(
url = csdnLoginUrl,
data = postdata)
req.add_header('Accept', 'text/html, application/xhtml+xml, */*');
req.add_header('Accept-Language', 'en-US')
req.add_header('Accept-Encoding', 'gzip, deflate')
req.add_header('Connection', 'Keep-Alive');
req.add_header('Referer', csdnAccessModuleUrl)
req.add_header('User-Agent', 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)');
#open login url
r = urllib.request.urlopen(req)
通过上面2个例子我们可以发现, 当Request的postdata赋值时,则为post方法,默认为get。
- 前言
- PythonPath在Windows 下的设置
- Sublime Text: [Decode error - output not utf-8]
- Python 写文件时的Unicode设置
- python中文件打开的各个标识含义
- python 3中对list进行sort时,返回值为None
- python 3中使用getattr和*args时, 出现传入参数不一致的问题
- import module, from module import funtion区别
- Python 中list, dictionary 与 file相互操作
- 编译Python出现Tab,空格的问题
- Sublime Text2中Evernote 插件的使用
- python中全局变量的使用
- python中string和bool的转换
- python中http的一些编码转换
- python中http请求中添加cookie支持
- python构造一个http请求
- python中如何定义main方法
- python为类定义构造函数
- python中print的几种用法
- 自己写的工具:把Evernote(印象笔记)的笔记导入到博客(Blog)中
- Python打包成exe
- python中lxml的应用