python 爬虫(cookie)

本文详细介绍了Cookie和Session的区别,包括它们的存储位置、安全性及对服务器性能的影响。针对爬虫,解释了如何处理携带Cookie和Session的请求,以及如何利用requests库的Session类实现会话保持。同时,指出了快速请求可能导致的被识别为爬虫的风险,并探讨了通过不同方式获取登录后页面的方法。
摘要由CSDN通过智能技术生成

cookie和session区别

  • cookie数据存放在客户浏览器上,session数据放在服务器上
  • cookie不是很安全,别人可以分析放在本地的cookie并进行cookie欺骗
  • session会在一定时间上保存在服务器。当访问增多,会比较占用服务器的性能。
  • 单个cookie保存的数据不能超过4K,很多浏览器限制到一个站点最多保存20个cookie

爬虫处理cookie和session

带上cookie、session的优点:

能够请求到登录后页面

带上cookie、session的弊端:

  • 不需要cookie的时候尽量不去使用cookie
  • 但是为了获取登录后的页面,我们必须发送带有cookie的请求

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

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

携带cookie的请求

携带一堆cookie进行请求,把cookie组成cookie池

处理cookie、session请求

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

使用方法:

  1. 实例化一个session对象
  2. session发送get或者post请求
session = requests.session()
resp = session.get(url,headers)

请求登录之后的网站

未登录时我们无法直接通过url地址访问用户信息页

  • 实例化session
  • 先使用session发送请求,登录网站,把cookie保存在session中
  • 再使用session请求登录之后才能访问的网站,session能够自动的携带登录成功是保存在其中的cookie,进行请求
import requests
session=requests.session()
port_url='http://www.renren.com/PLogin.do'
post_data={}
headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36"}

不发送post请求,使用cookie获取登录后的页面

  • cookie过期时间很长的网站
  • 在cookie过期之前能够拿到所有的数据,比较麻烦
  • 配合其他程序一起使用,其他程序专门获取cookie,当程序专门请求页面

获取登录后的页面三种方式

  • 实例session,使用session方发送post请求,在使用他登录后的页面
  • header中添加cookie键,值为cookie字符串
  • 在请求方法中添加cookie参数,受字典形式的cookie。字典形式的cookie中的键是cookie的name,值是cookie的value
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值