selenium+python實(shí)現(xiàn)自動(dòng)化登錄的方法
Selenium Python 提供了一個(gè)簡(jiǎn)單的API 便于我們使用 Selenium WebDriver編寫(xiě) 功能/驗(yàn)收測(cè)試。 通過(guò)Selenium Python的API,你可以直觀地使用所有的 Selenium WebDriver 功能 。Selenium Python提供了一個(gè)很方便的接口來(lái)驅(qū)動(dòng) Selenium WebDriver , 例如Firefox、Chrome、Ie,以及Remote,目前支持的python版本有2.7或3.2以上.
selenium 可以自動(dòng)化測(cè)試、搶票、爬蟲(chóng)等工作。初次了解,現(xiàn)在模擬登錄百度——即自動(dòng)打開(kāi)瀏覽器、自動(dòng)輸入賬號(hào)密碼并提交進(jìn)行登錄。
工作需要實(shí)現(xiàn)一個(gè)微博自動(dòng)登錄的操作,在網(wǎng)上差了一些資料,決定使用selenium+python實(shí)現(xiàn)
selenium 是一個(gè)web的自動(dòng)化測(cè)試工具,主流一般配合java或者python使用,我這里使用的是python,可支持的瀏覽器基本包括所有主流瀏覽器IE、Mozilla Firefox、Google Chrome。
安裝過(guò)程不再贅述,但是后續(xù)使用時(shí),發(fā)現(xiàn)很多報(bào)錯(cuò)與版本兼容性有關(guān),因此這里列出可用的版本搭配:
python2.7
selenium3.0.2
火狐驅(qū)動(dòng)geckodriver.exe 版本v0.14.0 (使用高版本會(huì)出現(xiàn)異常報(bào)錯(cuò))
火狐瀏覽器52.0.2 (32 位) (版本太低或53的最新版本,都會(huì)報(bào)錯(cuò))
#encoding=utf-8 from selenium import webdriver import time import os #模擬登陸weibo def getCookies(weibo): """ 獲取Cookies """ cookies = [] driver = webdriver.Firefox() time.sleep(3) #sleep一下,否則有可能報(bào)錯(cuò) driver.get("https://weibo.com/login/") #cur_path=os.getcwd() #fileSuc = open(cur_path+"/login.html", 'w') #fileSuc.write(driver.page_source) #用戶(hù)名 密碼 elem_user = driver.find_element_by_xpath('//input[@id="loginname"]') elem_user.send_keys('*****@163.com') #瀏覽器版本不匹配的時(shí)候這里可能報(bào)錯(cuò) elem_pwd = driver.find_element_by_xpath('//input[@type="password"]') elem_pwd.send_keys('*****') commit = driver.find_element_by_xpath('//a[@node-type="submitBtn"]') commit.click() time.sleep(3) #fileSuc1 = open(cur_path+"/weibo2.html", 'w') #fileSuc1.write(driver.page_source) #print driver.title #登錄成功后獲取cookie cookie = {} if "微博-隨時(shí)隨地發(fā)現(xiàn)新鮮事" in driver.title: for elem in driver.get_cookies(): cookie[elem["name"]] = elem["value"] if len(cookie) > 0: logger.warning("Get Cookie Successful: %s" % account) cookies.append(cookie) continue else: logger.warning("Get Cookie Failed: %s!" % account) driver.close() driver.quit() return cookies cookies = getCookies(myWeiBo) print cookies logger.warning("Get Cookies Finish!( Num:%d)" % len(cookies))
find_element_by_xpath用來(lái)定位控件的位置,定位不到的時(shí)候,可以把網(wǎng)頁(yè)的代碼保存下來(lái)看看是否有對(duì)應(yīng)的控件,如果是安全控件或者登錄在js里實(shí)現(xiàn),這種方法是獲取不到的。
另外還有find_element_by_name、find_element_by_id的方法,但是我使用的時(shí)候出現(xiàn)找不到情況,懷疑是瀏覽器版本不匹配的原因。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Jupyter 無(wú)法下載文件夾如何實(shí)現(xiàn)曲線救國(guó)
這篇文章主要介紹了Jupyter 無(wú)法下載文件夾如何實(shí)現(xiàn)曲線救國(guó)?今天小編就為大家?guī)?lái)了解決方法,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04Python爬取百度地圖POI數(shù)據(jù)代碼的步驟
爬取百度地圖的POI數(shù)據(jù)涉及法律和道德問(wèn)題,因?yàn)檫@類(lèi)數(shù)據(jù)受到版權(quán)保護(hù),且大多數(shù)在線地圖服務(wù)都有嚴(yán)格的反爬蟲(chóng)措施,這篇文章主要介紹了Python爬取百度地圖POI數(shù)據(jù)代碼,需要的朋友可以參考下2024-08-08python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)(面向?qū)ο?
這篇文章主要介紹了python實(shí)現(xiàn)面向?qū)ο蟀鎸W(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06python中重啟for循環(huán),使其重新開(kāi)始遍歷
這篇文章主要介紹了python中重啟for循環(huán),使其重新開(kāi)始遍歷方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03聊聊python中的load、loads實(shí)現(xiàn)反序列化的問(wèn)題
在python自動(dòng)化中,我們傳遞一些參數(shù)是需要從文件中讀取過(guò)來(lái)的,讀取過(guò)來(lái)的字典并非python對(duì)象數(shù)據(jù)類(lèi)型而是string類(lèi)型。本文給大家分享python中的load、loads實(shí)現(xiàn)反序列化的問(wèn)題,感興趣的朋友一起看看吧2021-10-10Python實(shí)現(xiàn)貪吃蛇小游戲(單人模式)
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)單人模式的貪吃蛇小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09在Python中pandas.DataFrame重置索引名稱(chēng)的實(shí)例
今天小編就為大家分享一篇在Python中pandas.DataFrame重置索引名稱(chēng)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11python生成不重復(fù)隨機(jī)數(shù)和對(duì)list亂序的解決方法
下面小編就為大家分享一篇python生成不重復(fù)隨機(jī)數(shù)和對(duì)list亂序的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04