【Python】selenium模組基本使用
阿新 • • 發佈:2021-02-02
技術標籤:爬蟲
一、demo示例
效果:執行程式碼後,自動開啟谷歌瀏覽器,瀏覽器會首先跳轉到百度,然後在搜尋框中搜索Python,接著跳轉到搜尋結果頁
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.wait import WebDriverWait import time def from_baidu_search_python(): try: # 宣告瀏覽器物件 browser = webdriver.Chrome() # 開啟百度 browser.get("https://www.baidu.com") # 搜尋python,enter鍵搜尋 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_all_elements_located((By.ID,'content_left'))) print(browser.current_url) print(browser.get_cookies()) while True: time.sleep(10) finally: browser.close() from_baidu_search_python()
二、Keys鍵盤類操作常用方法
匯入方法:from selenium.webdriver.common.keys import Keys send_keys(Keys.BACK_SPACE) 刪除鍵BackSpace send_keys(Keys.SPACE) 空格鍵Space send_keys(Keys.TAB) 製表鍵Tab send_keys(Keys.ESPACE) 回退鍵Esc send_keys(Keys.ENTER) 回車鍵Enter send_keys(Keys.CONTROL,‘a’) 全選Ctrl+A send_keys(Keys.CONTROL,‘c’) 複製CTRL+C send_keys(Keys.CONTROL,‘x’) 剪下CTRL+X send_keys(Keys.CONTROL,‘v’) 貼上Ctrl+V send_keys(Keys.F1) 鍵盤F1 send_keys(Keys.F12) 鍵盤F12
三、定位節點方法
find_element(s)_by_id()——按id查詢 find_element(s)_by_name()——按name值查詢 find_element(s)_by_class_name()——按類名查詢 find_element(s)_by_tag_name()——按標籤名查詢 find_element(s)_by_link_text()——此種方法是專門用來定位文字連結的,比如百度首頁右上角有“新聞”,“hao123”,“地圖”等連結。如: # 通過link定位"新聞"這個連結並點選 driver.find_element_by_link_text('新聞').click() find_element(s)_by_partial_link_text()——按部分文字連結名稱查詢 有時候一個超連結的文字很長很長,我們如果全部輸入,既麻煩,又顯得程式碼很不美觀,這時候我們就可以只擷取一部分字串,用這種方法模糊匹配了。 find_element(s)_by_xpath()——按xpath方式查詢 find_element(s)_by_css_selector()——按css選擇器查詢
獲取節點資訊程式碼示例:
>
from selenium import webdriver
browser = webdriver.Chrome()
url = 'https://www.zhihu.com/explore'
browser.get(url)
logo = browser.find_element_by_id("zh-top-link-logo")
print(logo)
print(logo.get_attribute('class'))
>
from selenium import webdriver
browser = webdriver.Chrome()
url = 'https://www.zhihu.com/explore'
browser.get(url)
input = browser.find_element_by_id("zh-top-add-question")
print(input.text)