先來看一下功能實現,代碼如下:
from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.common.keys import Keysfrom selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.support.wait import WebDriverWait#聲明瀏覽器對象browser = webdriver.Chrome()try: browser.get('https:www.baidu.com') input = browser.find_element_by_id('kw') input.send_keys('Python') input.send_keys(Keys.ENTER) wait = WebDriverWait(browser,10) wait.until(EC.presence_of_element_located((By.ID,'content_left'))) print(browser.current_url) print(browser.get_cookies()) print(browser.page_source)finally: browser.close()
可以看到打開了百度網站,查詢了“Python”并且輸出了當前的url,cookies還有網頁源代碼。
下面再來介紹詳細功能。
1、聲明瀏覽器對象。
browser = webdriver.Chrome()browser = webdriver.Firefox()
瀏覽器的對象初始化,并將其賦值給browser對象。
2.以淘寶為例,請求網頁。
browser = webdriver.Chrome()browser.get('https://www.taobao.com')print(browser.page_source)browser.close()
可以看到輸出了淘寶的源碼,隨后關閉。
3.查找節點
單個節點
提取搜索框這個節點
檢查搜索框如下:
查找搜索框:
browser = webdriver.Chrome()browser.get('https://www.taobao.com')# 通過id查找input_first = browser.find_element_by_id('q')# 通過css查找input_second = browser.find_element_by_css_selector('#q')# 通過xpath查找input_third = browser.find_element_by_xpath('//*[@id="q"]')print(input_first,input_second,input_third)browser.close()
# 查找單個節點的方法find_element_by_idfind_element_by_namefind_element_by_xpathfind_element_by_link_textfind_element_by_partial_link_textfind_element_by_tag_namefind_element_by_class_namefind_element_by_css_selector
通用方法查找:
browser = webdriver.Chrome()browser.get('https://www.taobao.com')input_first = browser.find_element(By.ID,'q')print(input_first)browser.close()find_element()里面需要兩個參數,查找方式By和值, 例如:find_element(By.ID,'q') 通過查找ID的當時,查找id為q。
多個節點:
例如左側的導航條所有條目:
browser = webdriver.Chrome()browser.get('https://www.taobao.com')lis = browser.find_elements_by_css_selector('.service-bd li')print(lis)browser.close()
獲取多個節點的方法:
新聞熱點
疑難解答