十五、cookies和session的使用

1、cookie和session的区别

  (1)cookie数据存放在客户的浏览器上,session数据放在服务器上。

  (2)cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗。

  (3)session会在一定时间内保存在服务器上。当访问增多,会比较占用服务器的性能。

  (4)单个cookie保存的数据不能超过4k,很多浏览器都限制一个站点最多保存20个cookie。

2、爬虫处理cookie和session

  2.1 带上cookie、session的好处

    能够请求到登录之后的页面,因此必须发送带有cookies的请求。

  2.2 带上cookie、session的弊端

    一套cookie和session往往和一个用户对应。

    请求太快,请求次数太多,容易被服务器识别为爬虫。

    所以:不需要cookie的时候尽量不去使用cookie。

  2.3 处理cookie、session请求

    requests提供了一个叫做session类,来实现客户端和服务端的会话保持

    思路:先实例化session,再使用session发送请求,登录网站,把cookie保存在实例化的session中,接着使用session请求登录之后才能访问的网站,session能够自动的携带登录成功时保存在其中的cookie,进行请求。

    使用方法:

扫描二维码关注公众号,回复: 11192167 查看本文章

        (1)实例化一个session对象:`session = requests.session()`

        (2)让session发送get或则post请求:`response = session.get(url,headers)`

  2.4 Requests小技巧

    (1)把cookie对象转化为字典:`requests.util.dict_from_cookiejar`

    (2)设置超时:`response=requests.get(url,1)`

    (3)配合状态码判断是否请求成功:`assert response.status_code==200`

        

    

猜你喜欢

转载自www.cnblogs.com/nuochengze/p/12890202.html
今日推荐