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()
>>>>閱讀全文測試