关于selenium如何免登录(爬虫)

想法:

先使用selenium打开网页后,手动进行一次登录,此时浏览器通过cookie保存了我们的登录信息,然后get_cookies()获取当前的cookies。
这时候的cookies数据是保存在内存里面,如果需要之后的使用,就需要将cookies保存在本地,使用的是json.dumps()进行保存。
保存之后后期需要使用cookies,则使用json.loads()转为字典,然后使用add_cookies()加载网页cookies。达到免登录的目的。

以百度为例

源码:

获取并保存cookies
	from selenium import webdriver
	import json,time
	d.webdriver.Chrome()
	d.get('http://baidu.com')
	time.sleep(2)
	input('输入任意继续...')						#此时在浏览器里面手动登录
	cookies = d.get_cookies()
	jsoncookies = json.dumps(cookies)			#转为json
	with open('cookies','w') as f:
		f.write(jsoncookies)					#将内存数据写入磁盘
	d.close()									#关闭并释放内存是个好习惯
加载本地cookies至浏览器
	from selenium import webdriver
	import json,time
	d.webdriver.Chrome()
	d.get('http://baidu.com')
	time.sleep(2)
	d.delete_all_cookies()						#删除当前所有cookie
	with open('cookies' ,'r' ,encoding = 'utf-8') as f:
		listcookies = json.loads(f.read())		#读取磁盘文件保存的cookie数据
	
	for cookie in listcookies:					#添加cookie
		d.add_cookies({			
			'domain': '.baidu.com', 		 	#注:此处baidu.com前,需要带点
       		'name': cookie['name'],
        	'value': cookie['value'],
        	'path': '/',
        	'expires': None
		})
		
	d.get('http://biadu.com')					#刷新网页,查看是否cookie添加成功
	time.sleep(10)
	d.close()									#关闭浏览器
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值