Linux中python脚本实现免密登录,selenium操作cookies实现免密登录

导读

一直想用selenium实现个小功能,比如发微博之类的,但是有的网站在登录会有验证码,没想到太好的方法解决,于是想到利用cookies来登录网站。

获取一个可用的cookies

获取的cookies会保存为一个json格式的文件。不过在打开网站后,登录操作需要自己手动进行一下,代码中有注释,大家可以注意一下,

代码如下:

#!/usr/bin/python

#coding=utf-8

from selenium import webdriver

import time

import json

def get_cookies(test_url):

#保存cookies的文件

file = 'cookies.json'

#打开需要获取cookies的网站

driver = webdriver.Firefox()

driver.implicitly_wait(5)

driver.get(test_url)

driver.maximize_window()

#网站打开后,在时间内手动执行登录操作

time.sleep(60)

#登录成功后,获取cookies并保存为json格式

cookies = driver.get_cookies()

fp = open(file,'w')

json.dump(cookies,fp)

fp.close()

#关闭浏览器

driver.close()

if __name__ == "__main__":

url = raw_input('please input url:')

get_cookies(url)

利用cookies登录网站

先打开要登录的网站,然后将cookies从之前保存的json文件读取出来,然后添加到浏览器,刷新界面,即可实现登录,然后便可以进行发微博的操作,具体元素定位,请大家百度selenium的一些基本用法,此处不再赘述。代码中也给出了不打开浏览器的方式来实现功能。

代码如下:

#!/usr/bin/python

#coding=utf-8

from selenium import webdriver

import json

import time

file = 'cookies.json'

#打开浏览器,若不想打开浏览器运行脚本,可以使用下面注释掉的方法

driver = webdriver.Firefox()

#以headless模式运行脚本,可以实现不打开浏览器对网站进行操作

#option = webdriver.FirefoxOptions()

#option.add_argument(argument='-headless')

#driver = webdriver.Firefox(firefox_options=option)

#打开网址

def open_url(url):

driver.get(url)

driver.implicitly_wait(5)

driver.maximize_window()

#向浏览器添加保存的cookies

def add_cookies():

fp = open(file,'r')

cookies = json.load(fp)

fp.close()

for cookie in cookies:

driver.add_cookie(cookie)

if __name__ == "__main__":

#输入要打开的网站并打开

test_url = raw_input('please input url:')

open_url(test_url)

time.sleep(5)

#添加cookies后刷新界面,实现免密登录

add_cookies()

driver.refresh()

# 发送微博

#定位到微博输入框,点击输入框

driver.find_element_by_xpath("//textarea[@class='W_input']").click()

time.sleep(2)

#输入需要发送的内容

driver.find_element_by_xpath("//textarea[@class='W_input']").send_keys('Test message')

time.sleep(3)

#点击发送按钮

driver.find_element

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值