Python爬蟲 Selenium與PhantomJS

 

Selenium

Selenium是一個Web的自動化測試工具,最初是爲網站自動化測試而開發的,最初是爲網站自動化測試而開發的,類型像咱們玩遊戲用的按鍵精靈,能夠按指定的命令自動化操做,不一樣是Selenium能夠直接運行在瀏覽器上,它支持全部主流的瀏覽器(包括PhantomJS這些無界面的瀏覽器)。html

Selenium能夠根據咱們的指令,讓瀏覽器自動加載頁面,獲取須要的頁面,甚至頁面截屏,或者判斷網站上某些動做是否發生。python

Selenium本身不帶瀏覽器,不支持瀏覽器的功能,它須要與第三方瀏覽器結合在一塊兒才能使用。可是咱們有時候須要讓它內嵌在代碼中運行,全部咱們而已用一個叫PhantomJS的工具代替真實的瀏覽器。web

pip命令安裝:pip install selenium

PhantomJS

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

相關文章
相關標籤/搜索