1醋寝、其常用的功能包括:設置瀏覽器的參數(shù)搞挣、瀏覽器多窗口切換、設置等待時間音羞、文件的上傳與下載囱桨、cookies處理以及frame框架的操作。
常用的設置:瀏覽器的可視化(加快代碼的請求速度)和瀏覽求的請求頭等信息(防反爬蟲機制)
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
url = 'https://movie.douban.com/'
chrome_options = Options()
chrome_options.add_argument('--headless') #--headless表示不顯示瀏覽器的操作過程
chrome_options.add_argument('lang=zh_CN.UTF-8') #設置參數(shù)防反爬蟲
UserAgent = 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Firefox/68.0'
chrome_options.add_argument('UserAgent=' + UserAgent)
driver = webdriver.Chrome(chrome_options=chrome_options) #啟動設置的參數(shù)
driver.maximize_window() #瀏覽器窗口最大化
driver.minimize_window() #瀏覽求窗口最小化
driver.get(url)
print(driver.title)? #獲取網(wǎng)頁標題
print(driver.page_source)? #源碼
2嗅绰、切換窗口來獲取不同信息
from selenium import webdriver
import time
url = 'https://movie.douban.com/'
driver = webdriver.Chrome()
driver.get(url)
js = 'window.open("https://www.sina.com");'
driver.execute_script(js)
current_window = driver.current_window_handle #獲取當前窗口信息
handles = driver.window_handles? ? #獲取打開的窗口信息
time.sleep(2)
driver.switch_to.window(handles[0])? #切換到第一個窗口
time.sleep(2)
driver.switch_to.window(handles[1])? #切換到第二個窗口
3舍肠、設置等待時間讓網(wǎng)頁響應盡量達到同步,保證程序的少出bug窘面。以上用time模塊實現(xiàn)翠语,接下來使用selenium庫提供的方法實現(xiàn),其比time模塊的等待更智能财边。
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions
url = 'https://www.baidu.com'
driver = webdriver.Chrome()
driver.get(url)
driver.implicitly_wait(10)? #隱性等待時間肌括,最多10秒
driver.find_element_by_id('kw').send_keys('哈哈')
condition = expected_conditions.visibility_of_element_located((By.ID,'kw'))
#.visibility_of_element_located檢查頁面元素是否可見
#(By.ID,'kw')kw為搜索框?qū)傩裕珺y.ID是使用find_element_by_id定位
WebDriverWait(driver=driver, timeout=10, poll_frequency=0.5).until(condition)??#顯性等待時間
隱性等待時間:在設定時間內(nèi)網(wǎng)頁加載完成即刻自動執(zhí)行下一步 酣难,否則拋出異常谍夭。
顯性等待時間:程序隔一段時間檢測網(wǎng)頁是否加載完成,完成繼續(xù)執(zhí)行憨募,否則繼續(xù)等待直到超時慧库。
4、cookie的添加馋嗜、讀取齐板、刪除操作
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get("http://www.exame.com")
time.sleep(2)
driver.add_cookie({'name':'xixi','value':'123456'}) #添加cookie
all_cookie = driver.get_cookies()? #獲取所有cookie
#print(all_cookie)
cookie1 = driver.get_cookie('xixi')#獲取一個cookie
print(cookie1)
driver.delete_cookie('xixi')
#surplus_cookies = driver.get_cookies()
#print(surplus_cookies)