爬蟲案例2-爬取影片的三種方式之一:selenium篇(2)

laity17發表於2024-09-11

@

目錄
  • 前言
  • selenium簡介
  • 實戰案例
  • 共勉
  • 部落格

前言

繼使用requests庫爬取好看影片的文章後,本文分享使用python第三方庫selenium庫接著來爬取影片網站,後續也會接著分享使用第三方庫DrissionPage爬取影片。

selenium簡介

selenium是一個用於web應用測試的工具集,它可以直接執行在瀏覽器中,就像真正的使用者在操作一樣。它主要應用在自動化測試,web爬蟲和自動化任務中。selenium提供了很多程式語言的介面,如java,python,c#等。這讓開發者可以自己編寫指令碼來自動化web應用的測試。

實戰案例

話不多說 ,直接上原始碼

from selenium import webdriver   # 瀏覽器驅動
from selenium.webdriver.common.by import By  # 用來定位web頁面上的元素
import time             # 時間函式
import os               # 檔案管理模組
import requests        # 資料請求模組


if not os.path.exists('./videos1'):  # 建立資料夾
    os.mkdir('./videos1')
def video(data):     # 定義請求每個詳細影片的函式
    for url in data:   # 遍歷每個詳細影片的地址
        driver=webdriver.Chrome()   # 初始化瀏覽器例項
        driver.get(url)               # 開啟url頁面
        src=driver.find_element(by=By.CLASS_NAME, value='art-video')  # 獲取每個詳細影片的詳細地址
        src=src.get_attribute('src')
        name=driver.find_element(by=By.CLASS_NAME, value='videoinfo-title')  # 獲取每個詳細影片的標題
        name=name.text
        video_detail=requests.get(src).content     # 對每個詳細影片進行請求
        with open('./videos1/'+name+'.mp4','wb') as f:  # 儲存影片
            f.write(video_detail)
        print(name,src)
        driver.quit()        # 關閉瀏覽器
driver=webdriver.Chrome()     # 初始化瀏覽器例項
driver.get("https://haokan.baidu.com/")  # 開啟網址
for i in range(1,6):
    driver.execute_script("document.documentElement.scrollTop=2000")  # 頁面下滑
    time.sleep(1)
time.sleep(2)
data_video=driver.find_elements(by=By.CLASS_NAME,value='videoItem_videoitem__Z_x08') # 對影片資訊進行定位
data=[]        # 定義空列表,用來儲存每個時評的地址
for a in data_video:  # 
    href=a.get_attribute("href")  # 獲取影片地址
    data.append(href)
print(data)
time.sleep(2)
driver.quit()   # 關閉瀏覽器
video(data)   # 呼叫video()函式

共勉

能力決定下限,機會決定上限

部落格

  • 本人是一個滲透愛好者,不時會在微信公眾號(laity的滲透測試之路)更新一些實戰滲透的實戰案例,感興趣的同學可以關注一下,大家一起進步。
    • 之前在公眾號釋出了一個kali破解WiFi的文章,感興趣的同學可以去看一下,在b站(up主:laity1717)也釋出了相應的教學影片

相關文章