Selenium+phantomJS+Python 操作cookie实现自动登录(以音悦台为例)
2017-10-06 23:57
881 查看
每天都在音悦台(yinyuetai)听歌,原来看订阅歌手更新的MV必须登陆,而且原来每次登陆都需要用
找到登录框界面,音悦台的登录框是动态生成的,需要先点击下
在登录框中找到用户名和密码文本框,填入用户名密码,点击登录按钮
页面加载成功后,利用
利用
携带cookie自动登录
先加载需要打开的页面
利用
加载本地保存为pickle文件的cookie
利用
cookie添加完毕后,再次打开对应的页面
geetest的滑动验证码,懒得对验证码再多做工作。近来发现登陆不用每次输入验证码就动了利用cookie自动登录的念头。
思路
登录,获取cookie找到登录框界面,音悦台的登录框是动态生成的,需要先点击下
登录tab,然后才会加载登录框DIV,由于音悦台页面加载比较慢,因此可能需要等待一定时间等待元素加载完成。
在登录框中找到用户名和密码文本框,填入用户名密码,点击登录按钮
页面加载成功后,利用
driver.get_cookies()得到cookie,返回的对象是一个列表,列表里存放的是以字典形式存放的cookie。
利用
cPickle库把cookie列表对象保存为本地文件
携带cookie自动登录
先加载需要打开的页面
利用
driver.delete_all_cookies()删除所有cookie
加载本地保存为pickle文件的cookie
利用
driver.add_cookie()添加cookie
cookie添加完毕后,再次打开对应的页面
代码
代码不全,仅关键部分def get_cookie(): driver.get('http://login.yinyuetai.com/') time.sleep(10) login_box=driver.find_element_by_class_name("login-active") common_click(driver,login_box) print('点击登录框') login_input=driver.find_elements_by_class_name("login-text-long") fill_text(driver,login_input[0],'xxxxx') print('填写用户名!') fill_text(driver,login_input[1],'xxxxx') print('填写密码!') login_btn=driver.find_element_by_class_name('login-submit') common_click(driver,login_btn) print('点击登录按钮') time.sleep(10) cookie_list = driver.get_cookies() #print cookie_list print('获得cookie!') addtime = time.strftime("%Y-%m-%d %H-%M-%S", time.localtime()) f = open(addtime + '.cookie', 'a+') pickle.dump(cookie_list, f) f.close() print('cookie文件:'+addtime+'.cookie') def login_by_cookie(): driver.get("http://www.yinyuetai.com") time.sleep(10) driver.delete_all_cookies() f= file('xxxx.cookie', 'r') cookie_set = pickle.load(f) for i in cookie_set: try: driver.add_cookie(i) except: pass driver.get("http://www.yinyuetai.com") time.sleep(10) print driver.current_url addtime=time.strftime("%Y-%m-%d %H-%M-%S", time.localtime()) driver.get_screenshot_as_file(addtime+'.png')
相关文章推荐
- selenium2+python_用cookie实现自动登录(百度首页为例)
- [Python爬虫] Selenium实现自动登录163邮箱和Locating Elements介绍
- Python Selenium Cookie 绕过验证码实现登录示例代码
- Python+Selenium实现新浪微博自动登录
- Python Selenium实现自动登录163邮箱
- java操作cookie 实现两周内自动登录
- phantomJS利用cookie实现自动登录
- Jsp 操作 Cookie 实现自动登录
- Python Selenium Cookie 绕过验证码实现登录
- casperjs配合phantomjs实现自动登录百度,模拟点击等等操作 - 怕虎在线www.ipahoo.com图文教程 - 怕虎在线
- python+selenium实现登录账户后自动点击
- Python selenium实现微博自动登录的示例代码
- python+selenium实现京东自动登录及秒杀功能
- selenium+python实现自动登录脚本
- python+cookielib实现批量利用账号和密码自动获取新浪微博登录cookie
- java操作cookie 实现两周内自动登录 加密安全性问题
- Python使用phantomJS实现自动登录
- [Python爬虫] Selenium实现自动登录163邮箱和Locating Elements介绍
- 用Python+Selenium模拟键盘和鼠标操作,实现自动签到
- python+selenium实现登录账户后自动点击的示例