這里模擬登陸會用到selenium這個自動化測試的工具萎庭,先介紹一下這個工具。
selenium
selenium是一個web的自動化測試工具齿拂,最初是為網(wǎng)站自動化測試而開發(fā)的擎椰,selenium可以直接運行在瀏覽器上,它支持所有主流的瀏覽器创肥,可以接收指令,讓瀏覽器自動加載頁面值朋,獲取需要的數(shù)據(jù)叹侄,甚至頁面截屏
selenium的簡單實用
首先selenium需要進行安裝,安裝比較簡單昨登。直接通過pip install selenium
就可以了趾代。
selenium安裝完成之后還需要下載對應的驅(qū)動,這里需要一定要下載與瀏覽器對應的驅(qū)動丰辣,比如我的谷歌瀏覽器的版本是73.0.3683.103撒强,那么就要下載對應版本的selenium的驅(qū)動,這里給大家兩個網(wǎng)站笙什。
selenium下載地址
http://chromedriver.storage.googleapis.com/index.html
Selenium對瀏覽器支持的版本
http://www.cnblogs.com/iceb/p/7195876.html
接下來以百度為例講解selenium的簡單使用
from selenium import webdriver
import time
wd = webdriver.Chrome()
# 設置窗口大小
# wd.set_window_size(1280,800)
# 全屏
wd.maximize_window()
# 輸入網(wǎng)址
wd.get('http://www.baidu.com')
# 截圖
wd.save_screenshot("baidu.png")
# 找到輸入框
kw = wd.find_element_by_id('kw')
# 在輸入框中輸入酒店
kw.send_keys("酒店")
# 點擊百度一下
wd.find_element_by_id('su').click()
time.sleep(3)
wd.quit()
上面的案例中飘哨,如果沒有把selenium添加到系統(tǒng)環(huán)境變量中程序會報錯。這里可以指定路徑來使用executable_path='./driver/chromedriver.exe'
模擬登陸微博PC端
driver = webdriver.Chrome()
# 隱式等待
driver.implicitly_wait(10)
driver.set_window_size(1200,1000)
driver.get('https://weibo.com/')
# 填寫賬號
driver.find_element_by_id('loginname').send_keys('賬號')
# 通過xpath找到密碼的輸入框
driver.find_element_by_xpath("http://div[@class='info_list password']/div/input").send_keys(pwd)
# 通過xpath找到登陸按鈕進行點擊
driver.find_element_by_xpath("http://div[@class='info_list login_btn']/a").click()
這里賬號密碼可以寫在配置文件中
加載配置文件
from configparser import ConfigParser
target = ConfigParser()
target.read('test.ini',encoding='utf-8')
pwd = target.get('weibo','password')
test.ini文件
[weibo]
password = '密碼'
模擬登陸微博移動端
這里用PC端模擬移動端琐凭,可以用谷歌瀏覽器來模擬芽隆,F(xiàn)12打開控制臺管理工具
接下來大家可以發(fā)現(xiàn),移動端要比PC端簡單的多统屈,因為所有的標簽都有ID胚吁。代碼如下:
driver.get('https://passport.weibo.cn/signin/login')
driver.find_element_by_id('loginName').send_keys('賬號')
driver.find_element_by_id('loginPassword').send_keys(pwd)
driver.find_element_by_id('loginAction').click()
driver.find_element_by_id("getCode").click()
(寫在最后,以后每天晚上九點半之后會更新Python基礎的技術(shù)連載愁憔,記得來看哦M蠓觥)
此文來源于微博和今日頭條:邏二妞,轉(zhuǎn)載請注明出處吨掌,謝謝