python 爬蟲 Selenium的簡單使用

一、Selenium基礎介紹及安裝

      1、Selenium簡介

         Selenium是一個用於測試網站的自動化測試工具,支持各種瀏覽器包括Chrome、Firefox、Safari等主流界面瀏覽器,同時也支持phantomJS無界面瀏覽器。

     2、安裝Selenium

pip install Selenium

     3、安裝瀏覽器驅動 

                當selenium升級到3.0之後,對不同的瀏覽器驅動進行了規範。如果想使用selenium驅動不同的瀏覽器,必須單獨下載  並設置不同的瀏覽器驅動。

          各瀏覽器下載地址:                    

                Firefox瀏覽器驅動:geckodriver

               Chrome瀏覽器驅動:chromedriver , taobao備用地址

               IE瀏覽器驅動:IEDriverServer

               Edge瀏覽器驅動:MicrosoftWebDriver

               Opera瀏覽器驅動:operadriver

               PhantomJS瀏覽器驅動:phantomjs

               注:部分瀏覽器驅動地址需要科學上網。windows配置瀏覽器驅動環境

                   ubuntu環境下載解壓後,放到/usr/bin

二、Selenium 快速入門  

     1、selenium元素定位用法

               假如我們有一個Web頁面,通過前端工具(如,Firebug)查看到一個元素的屬性是這樣的。               

<html>
  <head>
  <body link="#0000cc">
    <a id="result_logo" href="/" onmousedown="return c({'fm':'tab','tab':'logo'})">
    <form id="form" class="fm" name="f" action="/s">
      <span class="soutu-btn"></span>
        <input id="kw" class="s_ipt" name="wd" value="" maxlength="255" autocomplete="off">
    <form/>
  <body/>
  <head/>
<html/>

 

我們的目的是要定位input標籤的輸入框。

  • 通過id定位:
dr.find_element_by_id("kw")
  • 通過name定位:
dr.find_element_by_name("wd")
  • 通過class name定位:
dr.find_element_by_class_name("s_ipt")
  • 通過tag name定位:
dr.find_element_by_tag_name("input")
  • 通過xpath定位,xpath定位有N種寫法,這裏列幾個常用寫法:
dr.find_element_by_xpath("//*[@id='kw']")
dr.find_element_by_xpath("//*[@name='wd']")
dr.find_element_by_xpath("//input[@class='s_ipt']")
dr.find_element_by_xpath("/html/body/form/span/input")
dr.find_element_by_xpath("//span[@class='soutu-btn']/input")
dr.find_element_by_xpath("//form[@id='form']/span/input")
dr.find_element_by_xpath("//input[@id='kw' and @name='wd']")
  • 通過css定位,css定位有N種寫法,這裏列幾個常用寫法:
dr.find_element_by_css_selector("#kw")
dr.find_element_by_css_selector("[name=wd]")
dr.find_element_by_css_selector(".s_ipt")
dr.find_element_by_css_selector("html > body > form > span > input")
dr.find_element_by_css_selector("span.soutu-btn> input#kw")
dr.find_element_by_css_selector("form#form > span > input")

接下來,我們的頁面上有一組文本鏈接。

<a class="mnav" href="http://news.baidu.com" name="tj_trnews">新聞</a>
<a class="mnav" href="http://www.hao123.com" name="tj_trhao123">hao123</a>
  • 通過link text定位:
dr.find_element_by_link_text("新聞")
dr.find_element_by_link_text("hao123")
  • 通過link text定位:
dr.find_element_by_partial_link_text("新")
dr.find_element_by_partial_link_text("hao")
dr.find_element_by_partial_link_text("123")

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章