Python爬虫教你爬取视频信息

news2024/5/18 18:29:12

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

目录

  • 前言
  • 基本环境配置
  • 爬取目标视频
    • 获取视频链接
      • 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 requests
    
    url="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.coloradmin.cn/o/273646.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

沁恒CH32V307使用记录:GPIO与EXTI

文章目录目的GPIO(通用输入输出接口)基础说明初始化输出输入与电平读取锁定机制EXTI(外部中断)基础说明使用演示总结目的 GPIO是单片机最基础的功能,EXTI最常用的场景就是GPIO用于输入时使用。这篇文章将对CH32V307中…

【i18n】使用 vue-i18n 实现国际化多语言切换

学习关键语句: i18n 进行多语言国际化 使用 vue-i18n 语言切换 写在前面 由于以前没有过国际化的经验 , 所以第一次遇到的时候还是有点懵逼的 , 赶紧在网上转了一大圈 , 分享给大家一点点我的使用经验 我写这篇文章的目的是大家看了之后跟着步骤走就能完成多语言切换的任务 …

闭眼时长标准差脚本

闭眼时长标准差脚本 闭眼时长标准差 平均闭眼时长:识别一分钟内闭眼次数以及每次闭眼的时长,将每次闭眼的时长进行累计相加,最终再取平均值 闭眼标准差公式 闭眼标准差((n1−navg)2(n2−navg)2...)∗1/n闭眼标准差\sqrt{((n_1-n_{avg})^2(…

【广度优先搜索】N叉树的层序遍历 | 腐烂的橘子 | 单词接龙 | 最小基因变化 | 打开转盘锁

🌠作者:阿亮joy. 🎆专栏:《数据结构与算法要啸着学》 🎇座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根 目录👉…

jenkins打包构建springboot项目为docker镜像并上传nexus私服

前提:jenkins,docker,nexus都已经搭建完毕 一. 开启docker远程访问 1.修改docker.service文件 Docker 安装成功之后,首先需要修改 Docker 配置来开启允许远程访问 Docker 的功能。     文件位置:/lib/systemd/system/docker.service    …

JVM(Java虚拟机)详解(JVM 内存模型、堆、GC、直接内存、性能调优)

JVM(Java虚拟机) JVM 内存模型 结构图 jdk1.8 结构图(极简) jdk1.8 结构图(简单) JVM(Java虚拟机): 是一个抽象的计算模型。如同一台真实的机器,它有自己…

使用比console.log更优质的前端调试方案

程序调试是程序开发必不可少的一环,刚开始接触前端调试时,最常用的就是 console.log 打印变量进行调试,本文会分享一些笔者学习到的前端调试方法,减少对 console.log 调试方式的依赖,选择更优质的前端调试方案。 本文中…

Android开发进阶——RxJava核心架构分析

简介 RxJava是对响应式扩展( Reactive Extensions,称之为 ReactiveX )规范的Java 实现,该规范还有其他语言实现:RxJS、Rx.Net、RxScala、RxSwift等等(也即,ReactiveX 定义了规范,其他…

pip安装时报错 ascii‘ codec can‘t decode byte 0xe2 in position...

在使用pip安装包的时候报错ascii’ codec can’t decode byte 0xe2 in position… 报错信息 UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe2 in position 1429: ordinal not in range(128) 以前好像见过类似的情况,所以搜了一下怎么修改python默认…

聊聊ChatGPT

最近ChatGPT火出圈。 在过去三个月里,眼见着它的热度火箭一般蹿升,据瑞银上周三发布的报告显示,GPT已经超过了Tiktok,成为人类有史以来最快突破1亿月活跃用户的互联网产品。Tiktok当初用了9个月,而GPT只用了2个月。 …

Spring使用了哪些设计模式?

目录Spring中涉及的设计模式总结1.简单工厂(非23种设计模式中的一种)2.工厂方法3.单例模式4.适配器模式5.装饰器模式6.代理模式7.观察者模式8.策略模式9.模版方法模式Spring中涉及的设计模式总结 1.简单工厂(非23种设计模式中的一种) 实现方式: BeanFactory。Spri…

go-grpc的使用和学习

文章目录基础知识:操作流程安装proto文件配置grpc: 正常客户端发送数据(以字节流的方式),服务器接受并解析,根据约定知道要执行什么,然后把结果返回给客户 rpc将上述过程封装,使其操作更加优化,…

Vue 3 中的极致防抖/节流(含常见方式防抖/节流)

各位朋友你们好呀。今天是立春,明天就是正月十五元宵节了,这种立春 元宵相隔的时候,可是很难遇到的,百年中就只有几次。在这提前祝大家元宵快乐。 今天给大家带来的是Vue 3 中的极致防抖/节流(含常见方式防抖/节流&a…

ChatGPT给程序员人手一个,这很朋克

目录ChatGPT、程序员、朋克为什么程序员需要ChatGPT,为什么这很朋克总结ChatGPT、程序员、朋克 本文由ChatGPT编写。 ChatGPT是由OpenAI开发的大型语言模型。它的核心功能是生成人类语言文本,因此有多种应用场景,如文本生成、对话生成、文本…

「VUE架构」Vue2与Vue3的区别

文章目录前言一、性能比Vue2快1.2~2倍1.1 diff算法优化1.2 事件侦听缓存1.3 减少创建组件实例的开销二、 按需编译,体积比Vue2更小三、 Compostion API四、 支持TS五、 自定义渲染API六、更先进的组件七、 更快的开发体验前言 VUE是一套用于构建用户界面的渐进式框…

Nginx常用功能举例解析

Nginx提供的基本功能服务从大体上归纳为"基本HTTP服务"、“高级HTTP服务”和"邮件服务"等三大类。基本HTTP服务Nginx可以提供基本HTTP服务,可以作为HTTP代理服务器和反向代理服务器,支持通过缓存加速访问,可以完成简单的…

【FPGA】Verilog:组合逻辑电路应用 | 数码管 | 8421BCD编码 | 转换七段数码管段码

前言:本章内容主要是演示Vivado下利用Verilog语言进行电路设计、仿真、综合和下载 示例:数码管的使用 功能特性: 采用 Xilinx Artix-7 XC7A35T芯片 配置方式:USB-JTAG/SPI Flash 高达100MHz 的内部时钟速度 存储器:2M…

Vue-VueRouter

前言 Vue Router 是 Vue.js (opens new window)官方的路由管理器。它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌。包含的功能有: 嵌套的路由/视图表模块化的、基于组件的路由配置路由参数、查询、通配符基于 Vue.js 过渡系统的视图过渡效果…

SPSS聚类分析(含k-均值聚类,系统聚类和二阶聚类)

本篇博客主要是根据1、聚类的基本知识点_哔哩哔哩_bilibili系列视频进行的学习记录一、SPSS聚类分析的基本知识点1、什么是聚类分析?聚类分析(Cluster analysis)又叫做群集分析,通过一些属性将对象或变量分成不同的组别,在同一类下的对象或变量在这些属性上具有一些…

最全面的SpringBoot教程(四)——数据库连接

前言 本文为 最全面的SpringBoot教程(四)——数据库连接 相关知识,下边将对JDBC连接配置,与使用Druid数据源,从添加依赖到修改配置项再到测试进行详尽介绍~ 📌博主主页:小新要变强 的主页 &…