selenium借助驅(qū)動程序webdriver來驅(qū)動相應(yīng)的瀏覽器,以最常用的谷歌和火狐瀏覽器為例,對應(yīng)的驅(qū)動程序如下 1. chromdriver, 谷歌瀏覽器的驅(qū)動程序 2. geckodriver, 火狐瀏覽器的驅(qū)動程序 chromdriver的下載地址如下 >http://chromedriver.storage./index.html geckodriver的下載地址如下 >https://github.com/mozilla/geckodriver/releases 需要注意的,要保證驅(qū)動程序和瀏覽器版本的匹配,這樣才可以成功驅(qū)動瀏覽器。 在瀏覽器之中,有一個特殊的瀏覽器,稱之為無頭瀏覽器PhantomJS, 是一個沒有GUI界面的瀏覽器,原生支持命令行運(yùn)行模式,非常實(shí)用linux服務(wù)器上的自動化。但是隨著該項(xiàng)目沒人進(jìn)一步維護(hù),以及谷歌和火狐瀏覽器對于無頭模式,即headless模式的支持,在python的selenium模塊中,更推薦使用火狐和谷歌瀏覽器。 下面來看下selenium操作瀏覽器的最基本使用方式,代碼如下 >>> from selenium import webdriver 在爬蟲程序中,通過自動化操作瀏覽器,來模擬真實(shí)用戶的瀏覽操作,避開了動態(tài)資源解析的難點(diǎn),使得程序的結(jié)果和我們在瀏覽器中獲得的結(jié)果完全一致,所以selenium是爬蟲的一大利器,是解決動態(tài)頁面的終極武器,但是缺點(diǎn)也很顯著,就是速度慢了很多,所以主要應(yīng)用于復(fù)雜網(wǎng)站的資源爬取。 通過selenium模塊,還可以實(shí)現(xiàn)以下操作 1. 定位元素,就是查找html中的特定元素 2. 操作元素,進(jìn)行下拉列表的選擇,文本框的輸入,按鈕的提交等操作 1. 定位元素 有多種方法來查找元素,對應(yīng)find_element系列方法,又可以細(xì)分為查找單個元素和多個元素,區(qū)別就是多個元素對應(yīng)的函數(shù)名字為find_elements。以查找單個元素為例,有以下幾種方法 1. find_element_by_id 2. find_element_by_name 3. find_element_by_xpath 4. find_element_by_link_text 5. find_element_by_partial_link_text 6. find_element_by_tag_name 7. find_element_by_class_name 8. find_element_by_css_selector 2. 操作元素 常用的操作元素的方法有以下幾種 1. send_keys, 填寫文本框或者上傳文件 2. submit, 提交表單 3. select_by_index, 選擇下拉列表 4. save_screenshot, 保存網(wǎng)頁截圖 下面是一個簡單的案例,通過selenium來自動化操作百度檢索,關(guān)鍵詞為python >>> from selenium import webdriver 通過selenium, 我們可以方便的操作瀏覽器,從而巧妙回避普通爬蟲程序遇到的動態(tài)頁面解析的難點(diǎn),對于處理復(fù)雜網(wǎng)頁而言,特別的好用。 |
|