用自动化工具selenium批量获取油管播放列表内视频的url

这篇具有很好参考价值的文章主要介绍了用自动化工具selenium批量获取油管播放列表内视频的url。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

用自动化工具selenium批量获取油管播放列表内视频的url

今天突发奇想想下载一些古早哆啦A梦的视频,看了一下B站上没有我满意的形式,所以上油管看了一下:
油管播放列表 网址提取,尝试用python实现一些小功能,selenium,音视频,python

不错不错,配合我的油管视频解析网站可以直接下载到本地

唯一的问题就是:一个一个复制链接太麻烦了!!!

如果有一个工具可以批量复制列表内的视频链接就好了,正好现在在学Python,此时不用何时用?

简单百度了一下,我把目光放在了自动化操作浏览器的工具Selenium上,开源、支持python、模拟操作用户行为,是一款很不错的工具。

太长不看版:文末会附上完整代码,有两处需要自行修改得到地方

首先就是selenium库的安装

pip install selenium

我这里用的是Chrome浏览器,所以在这里下载Chrome浏览器的驱动,其他浏览器可以自行在网上查找,注意下载对应本浏览器版本的驱动。

然后导入库:

from selenium import webdriver
from selenium.webdriver.common.by import By
import time

我们的核心任务就是使用selenium获取视频url:

def get_playlist_video_urls(playlist_url):
    ...
    return video_urls

输入视频列表的url,输出存放所以视频url的列表

编写函数内容:

  1. 设置浏览器的驱动路径
    driver_path = r'在这里输入你的驱动存放路径'
    
  2. 初始化:
    service = webdriver.ChromeService()
    driver = webdriver.Chrome(service=service)
    service = webdriver.ChromeService(executable_path=driver_path)
    
  3. 打开播放列表页面,等待加载,这里等待时间根据网络和电脑性能调整:
    driver.get(playlist_url)
    time.sleep(5)
    
  4. 模拟滚动,加载所有视频:
    last_height = driver.execute_script("return document.documentElement.scrollHeight")
    while True:
        driver.execute_script("window.scrollTo(0, document.documentElement.scrollHeight);")
        time.sleep(2)
        new_height = driver.execute_script("return document.documentElement.scrollHeight")
        if new_height == last_height:
            break
        last_height = new_height
    
  5. 获取所有链接:
    video_links = driver.find_elements(by=By.XPATH,value='//*[@id="video-title"]')
    video_urls = [link.get_attribute('href') for link in video_links]
    
    这里介绍一下find_elements方法:
    def find_elements(self, by=By.ID, value: Optional[str] = None) -> List[WebElement]:
    
    主要有两个参数,一个是by,一个是value
    by参数有八种值:
    class By:
    """Set of supported locator strategies."""
    
    ID = "id"
    XPATH = "xpath"
    LINK_TEXT = "link text"
    PARTIAL_LINK_TEXT = "partial link text"
    NAME = "name"
    TAG_NAME = "tag name"
    CLASS_NAME = "class name"
    CSS_SELECTOR = "css selector"
    
    通过目标的idXPATH等参数来搜索,具体介绍参考这篇博客,我们这里使用了XPATH搜索,'value'具体语法参考另一篇博客

这下这个函数的基本结构就完成了,只需要编写主函数即可:

# 替换成要获取的播放列表的URL
playlist_url = 'URL'

# 获取播放列表中所有视频的URL
video_urls = get_playlist_video_urls(playlist_url)

# 打印所有视频的URL
for url in video_urls:
    print(url)

这下就可以完美输出啦


附:

完整代码文章来源地址https://www.toymoban.com/news/detail-772624.html

from selenium import webdriver
from selenium.webdriver.common.by import By
import time

def get_playlist_video_urls(playlist_url):
    # 设置Chrome浏览器的驱动路径
    driver_path = r''

    # 初始化
    service = webdriver.ChromeService()
    driver = webdriver.Chrome(service=service)
    service = webdriver.ChromeService(executable_path=driver_path)

    # 打开播放列表页面,等待页面加载
    driver.get(playlist_url)
    time.sleep(5)

    # 模拟滚动以加载所有视频
    last_height = driver.execute_script("return document.documentElement.scrollHeight")
    while True:
        driver.execute_script("window.scrollTo(0, document.documentElement.scrollHeight);")
        time.sleep(2)
        new_height = driver.execute_script("return document.documentElement.scrollHeight")
        if new_height == last_height:
            break
        last_height = new_height

    # 获取所有视频链接
    video_links = driver.find_elements(by=By.XPATH,value='//*[@id="video-title"]')
    video_urls = [link.get_attribute('href') for link in video_links]

    # 关闭浏览器
    driver.quit()

    return video_urls

if __name__ == "__main__":
    # 替换成您要获取的播放列表的URL
    playlist_url = 'URL'

    # 获取播放列表中所有视频的URL
    video_urls = get_playlist_video_urls(playlist_url)

    # 打印所有视频的URL
    for url in video_urls:
        print(url)

到了这里,关于用自动化工具selenium批量获取油管播放列表内视频的url的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何使用Python自动化测试工具Selenium进行网页自动化?

    Selenium 是一个流行的Web自动化测试框架, 它支持多种编程语言和浏览器,并提供了丰富的API和工具来模拟用户在浏览器中的行为 。 Selenium可以通过代码驱动浏览器自动化测试流程,包括页面导航、元素查找、数据填充、点击操作等。 与PyAutoGUI和AutoIt相比, Selenium更适合于处

    2023年04月09日
    浏览(90)
  • 自动化测试工具——Selenium详解

    Selenium是一个用于Web应用程序测试的工具。是一个开源的Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium可以直接运行在浏览器上,它支持所有主流的浏览器,支持的浏览器包括IE(7, 8,

    2024年01月20日
    浏览(46)
  • 学会自动化必备工具-Selenium-再想着入坑自动化测试吧

    随着近些年IT行业的发展,软件测试人才的需求越来越大,也有很多小伙伴在考虑入坑,而软件测试中,收入相对较高的就是自动化了,所以这次就专门为大家简单介绍下自动化测试的必备工具Selenium。 Selenium是一款基于Web应用程序的开源测试工具 ,直接运行在浏览器中,支

    2024年01月23日
    浏览(42)
  • 自动化测试(二)selenium八大获取元素方法及对象操作

    目录 webdriver API 脚本实例 元素的定位 1. 通过id定位: 2. 通过name方式定位 3. 通过tag name(标签名)定位 4. 通过class name (类名)方式定位 5. 通过CSS 方式定位 6. 通过xpath方式定位 7. link text定位 8. Partial link text 定位 操作测试对象  鼠标点击与键盘输入 submit 提交表单 text 获取

    2024年02月03日
    浏览(32)
  • 如何实现批量获取电商数据自动化商品采集?如何利用电商数据API实现业务增长?

    随着电子商务的快速发展,数据已经成为了电商行业最重要的资产之一。在这个数据驱动的时代,电商数据API(应用程序接口)的作用日益凸显。通过电商数据API,商家能够获取到大量关于消费者行为、产品表现、市场趋势等有价值的信息,进而利用这些数据优化业务策略,

    2024年02月19日
    浏览(37)
  • python自动化测试工具selenium

    selenium 是网页应用中最流行的自动化测试工具,可以用来做自动化测试或者浏览器爬虫等。官网地址为:Selenium。相对于另外一款web自动化测试工具QTP来说有如下优点: 免费开源轻量级,不同语言只需要一个体积很小的依赖包 支持多种系统,包括Windows,Mac,Linux 支持多种浏

    2024年02月08日
    浏览(69)
  • 如何使用自动化测试工具Selenium?

    哈喽,大家好,我是小浪。那么有一段时间没有更新了,还是在忙实习和秋招的事情,那么今天也是实习正式结束啦,开始继续更新我们的学习博客,后期主要是开发和测试的学习博客内容巨多,感兴趣的小伙伴们可以一键三连支持一下欧~ 目录 一、什么是自动化测试? 二、

    2024年02月11日
    浏览(39)
  • 一文详解:自动化测试工具——Selenium

    Selenium是一个用于Web应用程序测试的工具。是一个开源的Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium可以直接运行在浏览器上,它支持所有主流的浏览器,支持的浏览器包括IE(7, 8,

    2024年01月16日
    浏览(46)
  • Web测试自动化工具Selenium的使用

    Selenium是一个Web应用测试的自动化工具,它通过模拟点击实现对Web应用的功能测试。测试时,除了Selenium,还需要对应的浏览器驱动,如在Chrome实现自动点击,则需要chromedriver。 Selenium支持多种语言和多种浏览器,本文仅记录python+chrome的使用。 1. 安装python 略 2. 安装Selenium 注

    2024年01月16日
    浏览(68)
  • 自动化测试工具Selenium的语法续.

    OK,那么上篇博客我们介绍了如何搭建基于Java+selenium的环境,并且使用selenium的一些语法给大家演示了如何进行自动化测试的案例,那么本篇博客我们来继续学习selenium的一些其他的比较重要的语法,感谢关注,期待三连~ 目录 一、定位一组元素 二、下拉框处理 三、上传文件

    2024年02月10日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包