Selenium是一個Web的自動化測試工具,最初是爲網站自動化測試而開發的,最初是爲網站自動化測試而開發的,類型像咱們玩遊戲用的按鍵精靈,能夠按指定的命令自動化操做,不一樣是Selenium能夠直接運行在瀏覽器上,它支持全部主流的瀏覽器(包括PhantomJS這些無界面的瀏覽器)。html
Selenium能夠根據咱們的指令,讓瀏覽器自動加載頁面,獲取須要的頁面,甚至頁面截屏,或者判斷網站上某些動做是否發生。python
Selenium本身不帶瀏覽器,不支持瀏覽器的功能,它須要與第三方瀏覽器結合在一塊兒才能使用。可是咱們有時候須要讓它內嵌在代碼中運行,全部咱們而已用一個叫PhantomJS的工具代替真實的瀏覽器。web
pip命令安裝:pip install selenium
PhantomJS
是一個基於Webkit的"無界面"(headless)瀏覽器,它會把網站加載到內存並執行頁面上的JavaScript,由於不會展現圖形界面,因此運行起來比完整的瀏覽器更高效。瀏覽器
若是咱們把Selenium和PhantomJS結合在一塊兒,就能夠運行一個很是強大的網絡爬蟲了,這個爬蟲能夠處理JavaScript、Cookie、headers,以及任何咱們真實用戶須要作的事情。緩存
PhantomJS只能從它的網站(http://phantomjs.org/download.html
)下載。由於PhantomJS是一個功能完善(雖然無界面)的瀏覽器而非一個Python庫,因此它不須要像Python的其它庫同樣安裝,但咱們能夠通網絡
過Selenium調用PhantomJS來直接使用 (目前phantomjs 已經中止維護)app
下載完成以後解壓複製下面這個文件,less
把這個exe 文件複製到python環境裏 scripts下 :ide
下面上個例子,破解該網站,解析全網小視頻轉無水印連接工具
from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By from selenium.webdriver.common.desired_capabilities import DesiredCapabilities service_args=[] service_args.append('--load-images=no') ##關閉圖片加載 service_args.append('--disk-cache=yes') ##開啓緩存 service_args.append('--ignore-ssl-errors=true') ##忽略https錯誤 driver = webdriver.PhantomJS(service_args=service_args) driver.get('http://www.700745.com/') driver.find_element_by_class_name('el-input__inner').send_keys('http://v.douyin.com/UP9RT7/') driver.find_element_by_id('button').click() element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.LINK_TEXT, "下載視頻"))) video_url = driver.find_element_by_link_text('下載視頻').get_attribute('href') cover_url = driver.find_element_by_link_text('視頻封面').get_attribute('href') print(video_url) print(cover_url)
selenium 的具體使用方法 可參考 http://www.javashuo.com/article/p-nuofsdng-gd.html