Windows下安装 python 3.7.0 (由于python 2和python 3存在不少语法的不兼容,咱们这里选择python 3)
下载连接:https://www.python.org/ftp/python/3.7.0/python-3.7.0-amd64.exe
测试是否安装成功:python
C:\Users\xiak>python --version Python 3.7.0 C:\Users\xiak>pip --version pip 10.0.1 from c:\python3\lib\site-packages\pip (python 3.7)
pip install selenium
下载地址:
https://sites.google.com/a/chromium.org/chromedriver/downloads
或则国内镜像
http://npm.taobao.org/mirrors/chromedriver/web
下载成功后,解压获得chromedriver.exe文件, 把这个文件复制到python的目录下或则把chromedriver.exe文件所在目录加入到PATH环境变量中chrome
访问QQ邮箱太频繁的话会出现验证码滑条,你须要在30秒内手动操做滑条,否则的话可能出错。npm
@login( chrome, "http://mail.qq.com", "change to your email", "change to your password", )
#_*_coding:utf-8_*_ from selenium import webdriver chrome = webdriver.Chrome() chrome.implicitly_wait(30) # Decorater # 登陆 def login(driver, url, user, pwd): def decorate(func): def f(*args, **kwargs): logger.info("正在登陆: %s ..." % (url,)) driver.get(url) driver.switch_to.frame("login_frame") driver.find_element_by_id("switcher_plogin").click() driver.find_element_by_id("u").clear() driver.find_element_by_id("u").send_keys(user) driver.find_element_by_id("p").clear() driver.find_element_by_id("p").send_keys(pwd) driver.find_element_by_id("login_button").click() # 侦测验证码,须要手动处理 logger.info("验证码程序侦测中 ...") captcha = "" try: captcha = driver.find_element_by_id("newVcodeArea").text except NoSuchElementException: logger.info("没有验证码程序") if captcha != "": logger.info("发现验证码程序, 请在页面上操做验证码滑条") cur_url = driver.current_url # 若是没有页面跳转的话,一直循环下去 # 若是页面发生跳转则跳出循环 while True: url_must_changed = driver.current_url if url_must_changed != cur_url: break time.sleep(1) uinfo = driver.find_element_by_id("useralias").text if uinfo != "": logger.info("登陆成功: 欢迎 %s" % (uinfo,)) else: logger.error("登陆失败") exit(1) return func(*args, **kwargs) return f return decorate @login( chrome, "http://mail.qq.com", "mail user name", "mail password", ) def dosomething(): pass if __name__ == "__main__": dosomething()
>>>>阅读全文测试