爬虫如何利用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切换网页


版权声明:本文为github_38289199原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。