1.配置Chrome瀏覽器的選項(xiàng)
options = webdriver.ChromeOptions() # 創(chuàng)建配置對(duì)象
options.add_argument('lang=zh_CN.UTF-8') # 設(shè)置中文
options.add_argument('--headless') # 無頭參數(shù),瀏覽器隱藏在后臺(tái)運(yùn)行
options.add_argument('--disable-gpu') # 禁用GPU加速
options.add_argument('--start-maximized') # 瀏覽器最大化
options.add_argument('--window-size=1920x1024') # 設(shè)置瀏覽器分辨率(窗口大小)
options.add_argument('--user-agent=""') # 設(shè)置請(qǐng)求頭的User-Agent
options.add_argument('--incognito') # 隱身模式(無痕模式)
options.add_argument(f'--proxy-server={proxy}') # 添加IP代理 proxy=f"http://{ip}:{port}"
# 關(guān)閉'Chrome正受到,自動(dòng)測(cè)試軟件的控制'的提示
options.add_experimental_option('useAutomationExtension', False)
options.add_experimental_option('excludeSwitches', ['enable-automation'])
options.add_experimental_option('prefs', {'profile.managed_default_content_settings.images': 2}) # 禁用圖片加載
driver.set_page_load_timeout(20) # 設(shè)置連接超時(shí)20秒
options.add_experimental_option('detach', True) # 不自動(dòng)關(guān)閉瀏覽器
driver = webdriver.Chrome(options=options) # 創(chuàng)建瀏覽器對(duì)象
driver.get('https://www.baidu.com')
2.修改瀏覽器窗口大小,set_window_size() 方法來修改瀏覽器窗口的大小,maximize_window() 方法可以實(shí)現(xiàn)瀏覽器全屏顯示,get_window_size()獲取網(wǎng)頁的窗口大小。
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
# 訪問百度首頁
driver.get('https://www.baidu.com')
# 獲取網(wǎng)頁的窗口大小
print(driver.get_window_size()) # {'width': 1050, 'height': 708}
# 1.設(shè)置瀏覽器的寬高為:600x800
driver.set_window_size(600, 800)
time.sleep(3)
# 2.網(wǎng)頁界面最大化
driver.maximize_window()
time.sleep(3)
# 關(guān)閉網(wǎng)頁
driver.quit()
3.瀏覽器前進(jìn)&后退,webdriver 提供 back 和 forward 方法來實(shí)現(xiàn)頁面的后退與前進(jìn)。下面我們 ①進(jìn)入百度首頁,②打開百度圖片網(wǎng),③back 返回百度首頁,④ forward 前進(jìn)到百度圖片網(wǎng)。為了看到自動(dòng)化的過程,可以加延時(shí)處理,driver.title顯示網(wǎng)頁的標(biāo)題。
import time
from selenium import webdriver
driver = webdriver.Chrome()
# 1.訪問百度首頁
driver.get('https://www.baidu.com/')
print(driver.title) # 百度一下,你就知道
time.sleep(2)
# 2.訪問百度圖片,主頁
driver.get('https://image.baidu.com/')
print(driver.title) # 百度圖片-發(fā)現(xiàn)多彩世界
time.sleep(2)
# 3.返回(后退)到百度首頁
driver.back()
time.sleep(2)
# 4.前進(jìn)到百度圖片網(wǎng)
driver.forward()
大家會(huì)發(fā)現(xiàn)第2次 get() 打開新頁面時(shí),會(huì)在原來的頁面打開,而不是在新標(biāo)簽中打開。如果想的話,可以執(zhí)行 js 語句來打開新的標(biāo)簽。
js = "window.open('https://image.baidu.com/')"
driver.execute_script(js)
4.常用的瀏覽器操作方法,自己敲代碼練習(xí)一下,這里就不一一演示了。
driver.maximize_window() # 最大化瀏覽器
driver.set_window_size(w,h) # 設(shè)置瀏覽器大小 單位像素
driver.set_window_position(x,y) # 設(shè)置瀏覽器位置
driver.back() # 后退操作
driver.forward() # 前進(jìn)操作
driver.refresh() # 刷新操作
driver.close() # 關(guān)閉當(dāng)前主窗口(主窗口:默認(rèn)啟動(dòng)那個(gè)界面,就是主窗口)
driver.quit() # 關(guān)閉driver對(duì)象啟動(dòng)的全部頁面
driver.get() #要打開的網(wǎng)址
driver.title # 獲取當(dāng)前頁面title信息
driver.current_url # 獲取當(dāng)前頁面url信息
# 截圖預(yù)覽
driver.get_screenshot_as_file('截圖.png')
# 瀏覽器名稱
driver.name
# 網(wǎng)頁源碼
driver.page_source
5.常見元素的基本方法:在百度先輸入李白,清空李白,輸入杜甫,最后點(diǎn)擊查詢按鈕。

Keys
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
# 1.查找輸入框,并輸入關(guān)鍵詞李白
input = driver.find_element(By.ID, 'kw')
input.send_keys('李白')
time.sleep(1)
# 2.清除李白,輸入杜甫
input.clear()
time.sleep(1)
input.send_keys('杜甫')
button = driver.find_element(By.ID, 'su')
button.click()
# 輸出按鈕的大小
print(button.size) # {'height': 40, 'width': 112}
print(button.is_displayed()) # True
# 輸出value屬性的值
print(button.get_attribute('value')) # 百度一下
time.sleep(5)
# 關(guān)閉網(wǎng)頁
driver.quit()
完畢!!感謝您的收看