python資料採集練習 根據指定av號下載bilibili視訊(三)【用selenium操縱瀏覽器行為】
阿新 • • 發佈:2018-12-12
selenium庫可以控制瀏覽器行為。我們用selenium庫可以抓取我們所需的網頁全部資訊。
注意:要選擇與你瀏覽器相相容版本的驅動配合使用
關於selenium詳細教程這裡不累述,本程式使用的是Chrome瀏覽器,並且中會用到如下幾個函式:
from selenium import webdriver driver = webdriver.Chrome()#建立驅動例項 driver.get("https://www.bilibili.com")#開啟網頁 data = driver.page_source #獲得網頁原始碼 driver.add_cookie(cookie) #加入cookie cookieData = driver.get_cookies() #獲得當前網頁cookie currentUrl = driver.current_url #獲得當前網頁網址 driver.refresh() #重新整理網頁 driver.close() #關閉網頁 button = driver.find_element_by_class_name("bilibili-player") #根據類名查詢元素(按鈕元素) button.click() #點選這個按鈕
driver.get(Url) :
會使你的瀏覽器開啟一個這個Url
driver.page_source():
它能返回網頁原始碼,包活html程式碼,javascript程式碼等,這也是我們選擇用selenium抓取資料的原因。一般的函式如urlopen,requests等無法返回渲染過的javascript程式碼,而seleniumn能完美解決這個問題
driver.get_cookies():
如果你需要讓瀏覽器記錄登入資訊以實現自動登入,我們需要讓它能將cookie儲存下來,我們可以使用此方法將cookie儲存為一個字典,以便下次呼叫。
driver.add_cookie(cookie):
它能給當前開啟的頁面新增cookie,一般配合driver.refresh()使用。cookie的效果只會在頁面重新整理後體現。
driver.find***():
selenium有許多find函式,可以通過不同的關鍵值返回不同的物件。這裡只用find_element_by_class_name,即根據類名查詢物件。找到物件(物件有可能是按鈕,或者文字框)後我們就可以對物件進行不同的操縱,比如點選,填寫資料等等。這裡我們用click(),即點選這個物件。
關於如何處理cookie,需要用到json庫,下期再講。