爬虫如何利用session方法保持登陆状态(selenium)

爬取网站页面时需要登录后才能访问,否则获取不到页面的实际响应数据

有些网站需要我们登陆才能获取访问数据,然而往往登陆页和所要爬取的数据不在同一页面,这里一般都会想到对cookies进行处理的方法,如下所示:

   1、先成功登录1次,获取到cookies,处理为字典
   2、再改送请求,requests.get(xxx, cookies=cookies)

然而requests模块为我们提供一个更加方便的方法,名为session,可以帮助我们维持客户端和服务端的会话状态而不断开:

	# 1、实例化session对象
   		session = requests.session()
   		
	# 2、让session对象发送get或者post请求
		post_data = {'username':'','password':''}
  	 	res = session.post(url=url, data=post_data, headers=headers)	# 登陆
  		res = session.get(url=url, headers=headers)

原理

浏览器原理: 访问需要登录的页面会带着之前登录过的cookie
程序原理: 同样带着之前登录的cookie去访问 - 由session对象完成
1、实例化session对象
2、登录网站: session对象发送请求,登录对应网站,把cookie保存在session对象中
3、访问页面: session对象请求需要登录才能访问的页面,session能够自动携带之前的这个cookie,进行请求

selenium实现

模拟点击,再用switch_to切换网页

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值