100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > selenium操作cookies实现免密登录 自动发微博

selenium操作cookies实现免密登录 自动发微博

时间:2020-04-07 09:45:04

相关推荐

selenium操作cookies实现免密登录 自动发微博

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

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

#!/usr/bin/python#coding=utf-8from selenium import webdriverimport timeimport jsondef 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-8from selenium import webdriverimport jsonimport timefile = '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()#向浏览器添加保存的cookiesdef 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.close()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。