爬虫案例2-爬取视频的三种方式之一:selenium篇(2)

cnblogs 2024-09-12 08:09:12 阅读 67

@

目录

    <li>前言
  • selenium简介
  • 实战案例
  • 共勉
  • 博客

前言

继使用requests库爬取好看视频的文章后,本文分享使用python第三方库selenium库接着来爬取视频网站,后续也会接着分享使用第三方库DrissionPage爬取视频。

selenium简介

selenium是一个用于web应用测试的工具集,它可以直接运行在浏览器中,就像真正的用户在操作一样。它主要应用在自动化测试,web爬虫和自动化任务中。selenium提供了很多编程语言的接口,如java,python,c#等。这让开发者可以自己编写脚本来自动化web应用的测试。

实战案例

话不多说 ,直接上源码

<code>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') # 获取每个详细视频的详细地址code>

src=src.get_attribute('src')

name=driver.find_element(by=By.CLASS_NAME, value='videoinfo-title') # 获取每个详细视频的标题code>

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') # 对视频信息进行定位code>

data=[] # 定义空列表,用来存储每个时评的地址

for a in data_video: #

href=a.get_attribute("href") # 获取视频地址

data.append(href)

print(data)

time.sleep(2)

driver.quit() # 关闭浏览器

video(data) # 调用video()函数

共勉

能力决定下限,机会决定上限

博客

    <li>本人是一个渗透爱好者,不时会在微信公众号(laity的渗透测试之路)更新一些实战渗透的实战案例,感兴趣的同学可以关注一下,大家一起进步。
    • 之前在公众号发布了一个kali破解WiFi的文章,感兴趣的同学可以去看一下,在b站(up主:laity1717)也发布了相应的教学视频。


声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。