午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

使用selenium自動化操作瀏覽器

 生信修煉手冊 2020-10-28

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
>>> browser = webdriver.PhantomJS()
>>> browser.get('https://www.baidu.com')
>>> browser.close()
上述程序通過webdriver來啟動PhantomJS瀏覽器,然后打開了百度首頁,操作完畢之后關(guān)閉了瀏覽器的窗口。

在爬蟲程序中,通過自動化操作瀏覽器,來模擬真實(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
>>> browser = webdriver.PhantomJS()
>>> browser.get('https://www.baidu.com')
>>> browser.find_element_by_id('kw').send_keys('python')
>>> browser.find_element_by_id('su').submit()
>>> print(browser.page_source)
>>> browser.close()

通過selenium, 我們可以方便的操作瀏覽器,從而巧妙回避普通爬蟲程序遇到的動態(tài)頁面解析的難點(diǎn),對于處理復(fù)雜網(wǎng)頁而言,特別的好用。

·end·

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多