1. 程式人生 > 其它 >【Python】selenium模組基本使用

【Python】selenium模組基本使用

技術標籤:爬蟲

一、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)