最近在學習爬蟲的過程翰萨,發(fā)現(xiàn)selenium是一個很好用的工具,一些模擬登陸的場景尖淘,或者動態(tài)生成的網(wǎng)頁惫叛,在不追求效率的情況下倡勇,用selenium + python爬取是十分方便的。
簡單來說嘉涌,selenium做的事就是模擬用戶操作訪問網(wǎng)頁妻熊,所以理解起來比較容易,定位元素的方法也比較豐富仑最,只是在網(wǎng)頁跳轉時尤其是動態(tài)加載的網(wǎng)頁跳轉時容易出現(xiàn)問題扔役,動態(tài)加載的網(wǎng)頁沒辦法判斷何時加載完成網(wǎng)頁,以至于接下來的操作依舊在原網(wǎng)頁上進行警医,現(xiàn)在還未找到好的解決辦法亿胸。
下面時我自己整理的常用方法
1. 初始化
driver = webdriver.Chrome('')#chromedriver的地址
2. 定位
selenium提供了八種常用的定位方法
- find_element_by_id()
- find_element_by_name()
- find_element_by_class_name()
- find_element_by_tag_name()
- find_element_by_link_text()
- find_element_by_partial_link_text()
7.find_element_by_xpath()(可以結合chrome自帶的copyxpath方法使用,不過有時不準確)
8.find_element_by_css_selector()
3. 獲取屬性
text 文本
tag_name
get_attribute('屬性名')
ex: driver.find_element_by_id('main').get_attribute('href')
dirver.current_url 獲取當前頁面的url
title:獲取當前頁面的title
4.操作對象
- click 點擊對象
- send_keys 在對象上模擬按鍵輸入
- clear 清除對象的內(nèi)容预皇,如果可以的話