python构造_python构造一个http请求

我们经常会用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。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值