1. 程式人生 > >python資料採集練習 根據指定av號下載bilibili視訊(三)【用selenium操縱瀏覽器行為】

python資料採集練習 根據指定av號下載bilibili視訊(三)【用selenium操縱瀏覽器行為】

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庫,下期再講。