爬蟲&Selenium&ChromeDriver

一、Selenium

  1. selenium是什麼

Selenium [1] 是一個用於Web應用程式測試的工具。Selenium測試直接運行在瀏覽器中,就像真正的用戶在操作一樣。支援的瀏覽器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。

在python爬蟲可以簡單的理解為:Selenium就是模仿人使用瀏覽器

  1. 如何下載或者是安裝selenium

    cmd進入win終端,輸入命令

    pip install selenium  

二、ChromeDriver

  1. ChromeDrive是什麼

    這個和JDBC類似,就是Selenium操作Chrome瀏覽器的驅動。同理Selenium操作Firefox瀏覽器就需要geckodriver,操作IE瀏覽器需要IEDriverServer驅動。

  2. 如何下載或者安裝ChromeDriver
    注意:ChromeDriver要和自己使用的chrome版本一致
    注意:ChromeDriver要和自己使用的chrome版本一致
    注意:ChromeDriver要和自己使用的chrome版本一致

    2.1 查詢自己chrome的版本

    ​ 地址欄輸入:

    chrome://version/  

    比如我的是:80.0.3987.149

    2.2 下載ChromeDriver

    地址欄:

    https://npm.taobao.org/mirrors/chromedriver/  

    這裡可能有人要問,不是最後一位不一樣嗎?

    答:的卻,但是我估計只要前三位相同應該都可以的。有興趣的同學可以試一下哈

    點擊進去,下載對應的OS版本,比如我的是win電腦,我就下載第三個。

2.3 下載好之後,解壓,把chromedriver.exe放到任意位置都可以。但是有要求:

  • 路徑上不能有中文
  • 存放的路徑不需要特殊許可權

這樣就可以了,接下來我們來測試一下。


三、測試

  1. 直接看程式碼

    from selenium import webdriver #導入必要的庫  #功能需求:模仿人類使用搜索框進行搜索  # 業務分析:在搜索框中輸入「關鍵字」,點擊「百度一下」或者是「回車」    #chromedriver.exe的存放路徑  driver_path=r"C:Program Files (x86)GoogleChromeApplicationchromedriver.exe"    # 通過webdriver對象的Chrome方法【不同的瀏覽器對應不同的方法】,獲取到chromedriver.exe  driver = webdriver.Chrome(executable_path=driver_path)    # 訪問百度  driver.get("http://www.baidu.com")    # 根據頁面的id值定位到搜索框的  input_tag = driver.find_element_by_id("kw")    #假如我們搜索「java」  input_tag.send_keys("java")    # 根據頁面id獲取到「百度一下」按鈕  submit_btn = driver.find_element_by_id("su")    #這個方法其實就是模仿人們點擊「百度一下」按鈕或者是「回車」  submit_btn.click()    
  2. 運行程式碼。它會自動打開瀏覽器並自動輸入「java」,並回車。

  3. 看效果


四、為什麼要用它——Selenium

答:因為有很多網站的數據都是非同步請求(Ajax)載入數據的,我們直接爬取是獲取不到數據的。因此我們使用selenium爬取返回來的頁面是已經經過瀏覽器解析好的頁面,我們再通過使用Xpath、bs4等,就可以爬取自己想要的數據了。