Python之requests库

相对于urllib,urllib2两个网络模块,Python提供了requests这个更为简单的模块.
由于requests是第三方模块,使用之前需要先安装。
官方文档:
http://cn.python-requests.org/zh_CN/latest/user/quickstart.html
简单使用:
导入:import requests

发送请求得到网页:
r=requests.get("http://blog.csdn.net/james_shu")
r=requests.post("http://blog.csdn.net/james_shu")
r=requests.put("http://blog.csdn.net/james_shu")
r=requests.head("http://blog.csdn.net/james_shu")
r=requests.options("http://blog.csdn.net/james_shu")

发送带参数的get请求,将key与value放入一个字典中,通过params参数来传递,其作用相当于urllib.urlencode:

>>> import requests
>>> pyload={'name':'王福运'}
>>> r=requests.get("http://blog.csdn.net/james_shu",params=pyload)
>>> print r.url
http://blog.csdn.net/james_shu?name=%CD%F5%B8%A3%D4%CB

得到请求的结果:

>>> r.text
u'<html>\r\n<head><title>403 Forbidden</title></head>\r\n<body bgcolor="white">\r\n<center><h1>403 Forbidden</h1></center>\r\n<hr><center>nginx</center>\r\n</body>\r\n</html>\r\n'
#得到页面的内容
>>> r.content
'<html>\r\n<head><title>403 Forbidden</title></head>\r\n<body bgcolor="white">\r\n<center><h1>403 Forbidden</h1></center>\r\n<hr><center>nginx</center>\r\n</body>\r\n</html>\r\n'
#得到响应的状态码
>>> r.status_code
403
#得到响应的字符编码
>>> r.encoding
'utf-8'

发送带有参数的post请求,post请求要通过data来传递参数

>>> r=requests.post("http://blog.csdn.net/james_shu",data=payload)
>>> print r.text
<html>
<head><title>403 Forbidden</title></head>
<body bgcolor="white">
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx</center>
</body>
</html>

发送文件的post类型,这个相当于向网站上传一张图片,文档等操作,这时要使用files参数

>>> url = 'http://httpbin.org/post'
>>> files = {'file': open('touxiang.png', 'rb')}
>>> r = requests.post(url, files=files)

定制headers,使用headers参数来传递

>>> import json
>>> url = 'https://api.github.com/some/endpoint'
>>> payload = {'some': 'data'}
>>> headers = {'content-type': 'application/json'}

>>> r = requests.post(url, data=json.dumps(payload), headers=headers)

获取响应中的Cookies信息:

>>> r = requests.get('http://www.baidu.com')
>>> r.cookies['BAIDUID']
'D5810267346AEFB0F25CB0D6D0E043E6:FG=1'

自定义Cookies:

>>> url = 'http://httpbin.org/cookies'
>>> cookies = {'cookies_are':'working'}
>>> r = requests.get(url,cookies = cookies)
>>> 
>>> print r.text
{
  "cookies": {
    "cookies_are": "working"
  }
}

使用timeout参数设置超时时间

>>> requests.get('http://github.com', timeout=1)
<Response [200]>

如果将时间设置成非常小的数,如requests.get(‘http://github.com‘, timeout=0.001),那么如果在timeout的时间内没有连接,那么将会抛出一个Timeout的异常

访问中使用session

先初始化一个session对象,s = requests.Session()
然后使用这个session对象来进行访问,r = s.post(url,data = user)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值