selenium操做cookies实现免密登陆,自动发微博

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

第一步:获取一个可用的cookies,获取的cookies会保存为一个json格式的文件。不过在打开网站后,登陆操做须要本身手动进行一下,代码中有注释,你们能够注意一下,代码以下:python

#!/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的一些基本用法,此处再也不赘述。代码中也给出了不打开浏览器的方式来实现功能。web

代码以下:json

#!/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.close()

  

 

原文出处:https://www.cnblogs.com/zhazi/p/11315818.html浏览器

相关文章
相关标签/搜索