textarea实现datalist效果_selenium操作cookies实现免密登录

cb76ba997368aa76bc5b2a0d093422ac.gif

一直想用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
让您学习到的每一节课都有所收获

《Linux就该这么学》是一本由资深运维专家刘遄老师及国内多名红帽架构师(RHCA)基于最新RHEL7系统共同编写的高质量Linux技术自学教程,极其适合用于Linux技术入门教程或讲课辅助教材。荣获双11、双12购物狂欢节IT品类书籍销量冠军,2017年、2018年国内读者增速最快的技术书籍,您可以在京东、当当、亚马逊及天猫搜索书名后购买,亦可加刘遄老师微信交流学习(手指按住下图3秒钟即可自动扫描)~

17ead3121645196d7e40e522396234e2.png

刘遄老师QQ:5604922

☀ Linux技术交流群:2265381(新群,火热加群中……)

☀ 官方站点:www.linuxprobe.com

☀ 书籍在线学习(电脑在线阅读效果更佳)

http://www.linuxprobe.com/chapter-00.html

《Linux就该这么学》是一本基于最新Linux系统编写,面向零基础读者的技术书籍。从Linux基础知识讲起,然后渐进式地提高内容难度,详细讲解Linux系统中各种服务的工作原理和配置方式,以匹配真实生产环境对运维人员的要求,突显内容的实用性。想要学习Linux系统的读者可以点击按钮了解这本书,同时这本书也适合专业的运维人员阅读,作为一本非常有参考价值的工具书!

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值