Python爬虫教你爬取视频信息

news/2024/12/22 14:02:25/

大家好,我是拉斯,今天分享一个爬取某音视频的一个小案例,大家一起学习
在这里插入图片描述

目录

  • 前言
  • 基本环境配置
  • 爬取目标视频
    • 获取视频链接
      • 1.查看网页源代码
      • 2.抓包工具捕捉
    • 下载视频(以mp4格式进行保存)
    • 获取其他信息并打印(作者名,作品名,获赞数......)
      • 示例(获取作者名)
      • 代码
      • 成果
      • 完结啦

前言

前面已经发布了爬取4k高清图片的示例,大家可以去参考学习;本次使用selenium和request技术,获取所想爬取的数据。
原视频 作者名 作品名 获赞数 评论数 收藏数 转发数

基本环境配置

  • 版本:Python3
  • 系统:Windows
  • 相关模块:selenium,time,requests
  • 开发工具:Pycharm
  • 爬取目标视频

    获取视频链接

    1.查看网页源代码

    一如既往搜索video标签,发现没有;再搜索video,发现也没有。这时候换思路,用开发者工具.
    在这里插入图片描述
    在这里插入图片描述

    2.抓包工具捕捉

    注:对不起大家,下面这张图三个链接都是可以到原视频的,因此都可以作为第一段代码的url来使用!!!
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/3df3b5982417448da390306bee24eebb.png

    下载视频(以mp4格式进行保存)

    既然有了视频的链接,就可以直接发起请求进行视频的下载,以mp4格式进行持久化存储

    代码:(requests技术进行视频下载)

    import requestsurl="url1" #特别注意:此处url1值为上面图片三个链接中任意一个,会变化所以不写死,大家得到后自行复制到此处
    headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 Edg/109.0.1518.70"
    }
    resp=requests.get(url=url,headers=headers)
    with open("dy1.mp4","wb") as fp:fp.write(resp.content)
    print("下载完成")
    

    成果:
    在这里插入图片描述

    获取其他信息并打印(作者名,作品名,获赞数…)

    使用selenium技术进行元素定位,复制xpath,即可使用find_element_by_xpath方法进行内容获取,后面每一个都是这样获取,下面以作者名为例子

    示例(获取作者名)

    抓包工具进行作者名定位,最后右击元素复制对应xpath.
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/3fb4c3b99b224e42af9c5b85044970ea.png

    复制xpath:
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/e021c9aa19d94ab089e0c4d2dfec0739.png

    代码

    from selenium import webdriver
    import time
    from selenium.webdriver.common.keys import Keys
    url="url2" #url2值在评论区获得,因为写上审核不给过
    driver=webdriver.Chrome()
    driver.get(url)
    time.sleep(2)
    writer_name=driver.find_element_by_xpath('//*[@id="video-info-wrap"]/div[1]/div[1]/div[1]/span/span/span/span/span/span/span').text #作者名
    work_name=driver.find_element_by_xpath('//*[@id="video-info-wrap"]/div[1]/div[2]/div/div/span/span/span[1]/span/span/span').text #作品名
    hz_count=driver.find_element_by_xpath('//*[@id="douyin-right-container"]/div[3]/div[4]/div[2]/div[1]/div/div/div[1]/div[2]/div[2]/div/div[2]').text #获赞数量
    comment_count=driver.find_element_by_xpath('//*[@id="douyin-right-container"]/div[3]/div[4]/div[2]/div[1]/div/div/div[1]/div[2]/div[3]/div/div[2]').text #评论数量
    save_count=driver.find_element_by_xpath('//*[@id="douyin-right-container"]/div[3]/div[4]/div[2]/div[1]/div/div/div[1]/div[2]/div[4]/div/div[2]').text #收藏数量
    send_count=driver.find_element_by_xpath('//*[@id="douyin-right-container"]/div[3]/div[4]/div[2]/div[1]/div/div/div[1]/div[2]/div[5]/div[1]/div/div[2]').text #转发数量print("作者名:",writer_name)
    print("作品名:",work_name)
    print("点赞数量:",hz_count)
    print("评论数量:",comment_count)
    print("收藏数量:",save_count)
    print("转发数量:",send_count)
    

    成果

    在这里插入图片描述

    完结啦


http://www.ppmy.cn/news/22639.html

相关文章

Go异步任务解决方案 Asynq

今天为大家介绍一个Go处理异步任务的解决方案:Asynq,是一个 Go 库,用于排队任务并与 worker 异步处理它们。它由Redis提供支持,旨在实现可扩展且易于上手。 一、概述 Asynq 是一个 Go 库,用于对任务进行排队并与工作人…

软件测试-python-UnitTest-笔记

UnitTestunittest是Python单元测试框架,类似于JUnit框架。unittest中有4个重要的概念:test fixture, test case, test suite, test runnerTestcase:一个TestCase的实例就是一个测试用例。什么是测试用例呢?就是一个完整的测试流程…

RPC框架整体架构

RPC就是把拦截到的方法参数,转成可以在网络中传输的二进制,并保证在服务提供方能正确地还原出语义,最终实现像调用本地一样地调用远程的目的。 1 RPC架构 RPC本质是远程调用,就要通过网络来传输数据。考虑到可靠性,一…

决策树算法分析天气、周末和促销活动对销量的影响

决策树算法分析天气、周末和促销活动对销量的影响 作者:AOAIYI 创作不易,觉得文章不错或能帮助到你,点赞收藏评论一下哦 文章目录决策树算法分析天气、周末和促销活动对销量的影响一、实验目的二、实验原理三、实验环境四、实验内容五、实验步…

QT+ OpenGL 变换

文章目录QT OpenGL变换向量的运算矩阵矩阵与向量相乘代码实现QT OpenGL 本篇完整工程见gitee:QTOpenGL 对应点的tag,由turbolove提供技术支持,您可以关注博主或者私信博主。 变换 我们需要改变物体的位置 现有解决办法(每一帧&#xff0c…

YB菜菜的机器学习自学之路(八)——基于keras的初级深度学习框架

YB菜菜的机器学习自学之路(八)——基于keras的初级深度学习框架前提说明1. 训练集和测试集2. mnist数据集简单介绍3.基于keras框架,利用全链接层搭建深度学习网络对MNIST训练3.1 数据导入与one-hot编码3.2 创建模型3.3创建神经元3.3.1 输入层…

产品原型不应该有过多的视觉设计元素

​写在前面: 日常中会接触较多的学习产品经理知识的小伙伴,学习是为从事这个岗位或者技能提升做准备。在与小伙伴接触的过程中发现,有小部分人的观点是产品原型不重要,甚至可以不学不做。 作为产品经理,产品原型制作是…

ubuntu16.04下安装离线jdk1.8

下载 jdk1.8安装包&#xff08;地址&#xff1a;Java Downloads | Oracle&#xff09;[ubuntu] 在/usr/local 目录下使用root账号执行以下命令(使用root账号&#xff0c;也可以使用普通账号<sudo>)&#xff1a;(1) 创建目录&#xff1a;mkdir java (将jdk离线包上传到该目…