首页 > 其他分享 >爬虫案例2-爬取视频的三种方式之一:selenium篇(2)

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

时间:2024-09-11 19:46:28浏览次数:1  
标签:视频 src selenium driver 爬虫 爬取 video data

@

目录

前言

继使用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)也发布了相应的教学视频

标签:视频,src,selenium,driver,爬虫,爬取,video,data
From: https://www.cnblogs.com/laity17/p/18408830

相关文章

  • Scrapy设置动态代理IP—提升爬虫效率与成功率的秘诀
    在进行网络数据采集时,爬虫代理IP是一个不可或缺的工具。通过动态代理IP,Scrapy爬虫可以有效避免被目标网站封禁,提高数据采集的成功率和效率。本文将详细介绍如何在Scrapy中设置动态代理IP,让你的爬虫更加智能和高效。什么是动态代理IP?动态代理IP是指在数据采集过程中,定期更换使......
  • 基于Python的黑龙江旅游景点数据分析系统 基于Flask的旅游景点爬虫可视化平台(程序+LW+
    ......
  • 计算机毕业设计PySpark+Django深度学习游戏推荐系统 游戏可视化 游戏数据分析 游戏爬
    在撰写《PySpark+Django深度学习游戏推荐系统》的开题报告时,建议包括以下内容:###1.研究背景与意义在数字娱乐行业中,游戏推荐系统成为提升用户体验的关键工具。现有的推荐系统大多基于用户行为数据进行推荐,但随着数据量的急剧增加和数据复杂性的提升,传统的推荐算法面临挑战......
  • 【爬虫软件】小红书按关键词批量采集笔记,含笔记正文、转评赞藏等!
    一、背景介绍1.1爬取目标熟悉我的小伙伴都了解,我之前开发过2款软件:【GUI软件】小红书搜索结果批量采集,支持多个关键词同时抓取!【GUI软件】小红书详情数据批量采集,含笔记内容、转评赞藏等!现在介绍的这个软件,相当于以上2个软件的结合版,即根据关键词爬取笔记的详情数......
  • selenium实战指南:如何防止被浏览器检测?
    在使用Selenium进行自动化测试或爬虫开发时,防止被浏览器检测由以下一些实用的策略,可以降低被检测到的风险:1.使用无头浏览器无头浏览器(如HeadlessChrome)是一种在后台运行的浏览器,它不会显示图形界面。使用无头浏览器可以避免因为图形界面的存在而被一些基于用户行为分析的检测手段......
  • python爬虫连载17
    文本属性设置行高、缩进、字符间距。text-align:设置文本对齐方式,属性值取left、center、right。line-height:设置文本行高,属性值取具体数值来设置具体行高。text-indent:代表首行缩进,text-indent:100px,意思是首行缩进100个像素。letter-spacing:设置字符间距。默认是normal,字符之间没......
  • selenium相关配置
    #创建一个配置对象options=webdriver.ChromeOptions()#代理设置options.add_argument('--proxy-server=http://221.131.165.71:27208')#携带本地用户信息启动,注意:在使用的时候要将运行的谷歌浏览器全部关闭#--user-data-dir携带的谷歌的本地信息,默认路径option......
  • selenium实战指南:如何防止被浏览器检测?
    一、简介在网络技术飞速发展的今天,自动化测试作为软件质量保证的重要手段,已经越来越受到开发者和运维人员的重视。其中,Selenium以其强大的功能和灵活的跨平台特性,成为了许多开发者进行Web应用自动化测试的首选工具。然而,随着浏览器安全策略的不断完善,如何有效地防止Selenium在自动......
  • 基于Python+大数据爬虫的影视数据展示与数据可视化平台设计和实现(源码+LW+部署讲解)
    博主介绍:✌全网粉丝50W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、P......
  • (java+Seleniums3)自动化测试实战
    一.web自动化测试基础密码的加密处理--是在前端JavaScript二.seleniumIDE录制打开火狐浏览器:点击寻找更多附加组件输入:选择:跳转:点击安装完成,打开之后是这个页面:录制一个新的测试用例在一个新的工程当中:点击第一个表示正在录制成功:三.......