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

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

#!/usr/bin/python
#coding=utf-8from selenium import webdriver
import time
import 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 webdriver
import json
import 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()#向浏览器添加保存的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.close()

  

转载于:https://www.cnblogs.com/zhazi/p/11315818.html

selenium操作cookies实现免密登录,自动发微博相关推荐

  1. Linux下使用expect实现跳板机自动跳转/免密登录/自动登录(转)

    shell脚本实现ssh自动登录远程服务器示例: #!/usr/bin/expect spawn ssh root@192.168.22.194 expect "*password:&quo ...

  2. ssh免密登录配置(两行命令搞定)

    最简单的ssh免密登录的配置 1.准备工作 2.命令行操作 3.互相免密登录 1.准备工作 确保两台服务器的用户名字相同,这里以用户名是username,服务器A要免密登录到服务器B为例子.注意:以下 ...

  3. linux服务器之间设置免密登录

    linux服务器之间设置免密登录 搞三台虚拟机 我的三台虚拟机是 192.168.30.101 192.168.30.102 192.168.30.103 改一下主机名 vi /etc/hostnam ...

  4. gitlab ci 自动化部署_前端gitLab加jenkins自动化构建和部署,以及服务器常用的linux命令行操作,免密登录...

    常用的linux命令行操作 将项目部署到服务器后,需要查看文件是否已经部署成功,已经对文件进行增删改查操作,就需要用到命令行操作,常用操作如下: ll 罗列出当前文件或目录的详细信息,含有时间.读写权 ...

  5. pythoncookie自动登录_Python使用cookie 免密登录了解一下

    我们都知道 HTTP 是无状态的,用户每次打开 web 页面时,服务器都打开新的会话,而且服务器也不会自动维护客户的上下文信息,那么服务器是怎么识别用户的呢? 这就是本文今天要讲解的内容.当服务端需要 ...

  6. [靠谱原创!] SSH免密登录设置----原理详解+具体操作(全国人民看完都懂了!)

    首先介绍一下SSH: 当我们用一台服务器登录另一台服务器可直接使用SSH协议进行登陆: //具体格式: // ssh [用户名]@[IP] ssh wdy@192.168.33.12 也可以直接远程传 ...

  7. GateOne配置API认证、SSH自动登录、用户免密登录及Web应用嵌入

    GateOne的安装与远程连接SSH在上一篇博客中已经有详细过程,传送门:全新CentOS7上GateOne的安装. 今天记录的是GateOne在Web应用中逐步添加API认证.取消掉用户登录需要输入 ...

  8. linux ssh免密登录(scp免密操作)

    使用ssh相关命令,如scp等的时候,输入密码是很麻烦的事,而且有时候需要做自动化操作,这个时候还要人手动输入密码就没法玩了,我们可以通过配置rsa私钥和公钥的方式来免密ssh登录. 也可以直接使用s ...

  9. Linux操作之多台服务器配置免密登录

    在进行多台服务器的使用时,如果每个都去进行输密码的话很麻烦,为了简单一点,我们可以配置多台服务器之间的免密登录,这个免密登录是多台服务器之间相互登录是免密的. 概述 我这里配置的是三态服务器(虚拟服务 ...

最新文章

  1. [YTU]_2641 9 填空题:静态成员---计算学生个数)
  2. 你不知道LinkedList中的方法
  3. 探秘react,一文弄懂react的基本使用和高级特性
  4. React开发(274):ant design table额外展开行
  5. java web请求转发_Javaweb请求转发及重定向实现详解
  6. 直接拿来用!GitHub 上那些值得你 Star 的开源项目!
  7. Java尖刀系列3:堆
  8. 【LeetCode】【字符串】题号:*557. 反转字符串中的单词 III
  9. 象棋正确的学习步骤是什么?入门和提高方法全都教给你!
  10. 图片视频毛玻璃效果实现
  11. C语言循环语句——while、for、do while
  12. 风影版OllyDBG 1.10 2016-12-09修改版
  13. jaeger 是很么软件_开源分布式跟踪系统Jaeger介绍 (六步快速上手)
  14. c语言单链表设计报告,单链表实验报告
  15. 是谁谋杀了中国的民营企业?
  16. 【交往智慧】004.己所不欲,勿施于人
  17. C语言试题115之两个乒乓球队进行比赛,各出三人。甲队为 a,b,c 三人,乙队为 x,y,z 三人。已抽签决定 比赛名单。有人向队员打听比赛的名单。a 说他不和 x 比,c 说他不和 x,z 比,请
  18. HTML5 可视化音乐播放器(附源码)
  19. 【源码】2022漫威最新热门电影《奇异博士》的LDA主题影评模型
  20. gdb调试 出现value optimized out解决方法

热门文章

  1. How is parsed BeanDefinition registered
  2. SAP UI5:如何处理resource not found for the segment XXXXX error message
  3. why always WebContent is added as prefix of url when repository request served
  4. SAP ABAP Soap测试框架一些有用的工具类
  5. php什么是阵列,php – 功能阵列的替代方法?
  6. 的it生活_在日本生活了10年的IT女,聊聊回国工作的亲身经历
  7. rmi远程反序列化rce漏洞_Oracle WebLogic 反序列化远程命令执行漏洞预警
  8. astype函数_从Excel到Python:最常用的36个Pandas函数!最完整的Pandas教程!
  9. java 安卓界面 可视化_Monkey可视化工具开发(android篇)
  10. html纵向的跑马灯效果,HTML+CSS入门 如何实现跑马灯/走马灯效果