Python爬虫—3第三方库_1_requests_进阶

1、response对象
     使用requests模块中get、post等请求方法之后,会返回一个response对象;
     在入门笔记中已经对response对象的一些属性进行了介绍,这里主要对其进行总结
     r.status_code          #响应状态吗
     r.raw                      #返回原始响应体,使用r.raw.read()读取
     r.content                 #字节方式的响应体,会自动对gzip加密的文本进行解码
     r.text                      #字符串形式的响应体,会自动根据响应头部的字符编码进行解码
     r.headers                #响应头
     r.encoding              #响应体的字符编码格式
     r.json()                   #内置的JSON编码器

2、会话对象(Session Object)
     会话对象可以在不同的请求之间保持一些参数,最方便的就是在各个请求之间保持cookies
>>> import requests
>>> s = requests.Session()
>>> s.cookies.update({"cookie1":"value1"})      #1
>>> r = s.get("http://httpbin.org/cookies")
>>> r.text
u'{\n  "cookies": {\n    "cookie1": "value1"\n  }\n}\n'
>>> r = s.get("http://httpbin.org/cookies", cookies={"cookie2": "value2"})     #2
>>> r.text
u'{\n  "cookies": {\n    "cookie1": "value1", \n    "cookie2": "value2"\n  }\n}\n'
>>> r = s.get("http://httpbin.org/cookies", cookies={"cookie1": "value3"})     #3
>>> r.text
u'{\n  "cookies": {\n    "cookie1": "value3"\n  }\n}\n'
>>> r = s.get("http://httpbin.org/cookies")          #4
>>> r.text
u'{\n  "cookies": {\n    "cookie1": "value1"\n  }\n}\n'
#1 只有通过这种方式设置的cookies或者headers才可以在不同的请求之间得到保持
#2 在对Session对象设置了cookies之后,还可以在get函数的参数中继续设置其他cookie值;
     这里设置的cookie值会与Session对象中的cookie进行合并,而后发给服务器;
     但是这里并不会对Session对象中的cookie值进行修改
#3 在这里设置了与Session中有相同key但不同value的cookie;
     首先,Session中的cookies与参数中设置的cookies进行合并;
     而后,对于相同key的cookie,参数中的value将会覆盖Session中的value;
     最后,将这个配置好的cookies发给服务器;
     需要注意的是:Session中的所有(key,value)都是保持不变的,上述修改仅限于发送给服务器
#4 这里再次获取cookies,发现还是原来Session中使用s.cookies.update(...)方法设置的cookies;
     也印证了#3的正确性
特别地:当服务器返回了新的cookies,Session对象中的cookies会被设置为全新的cookies;
     也就是说Session中总会保持最新的cookies。上述设置对headers也同样适用
     (服务器通过在response headers设置set-cookie来将新的cookie传递给客户机)
3、其他功能
     (1)SSL证书验证
>>> import requests
>>> r = requests.get("https://kyfw.12306.cn/otn", verify=True)
requests.exceptions.SSLError: [Errno 1] _ssl.c:510: error:14090086:....
>>> r = requests.get("https://github.com", verify=False)     #跳过SSL证书验证
>>> print r.status_code
200
>>> r = requests.get("https://github.com", verify=True)
>>> print r.status_code
200
     (2)代理设置
>>> import requests
>>> proxies = {"http": "http://10.10.1.10:3128"}
>>> r = requests.get("https://example.org", proxies = proxies)
     (3)更多信息请访问如下网址
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值