Python 爬虫之下载视频(二)

news2024/11/24 15:04:48

爬取某Y的视频链接和标题


文章目录

  • 爬取某Y的视频链接和标题
  • 前言
  • 一、基本思路
  • 二、程序解析阶段
  • 三、程序处理阶段
  • 总结


前言

这篇内容就简单给大家写个如何从网页上爬取某B主 主页 页面上所有的视频链接和视频标题。

这篇是基础好好看,下篇会根据这篇的结果做一个批量爬取视频的教程(先提前给大家展示个效果图)。
在这里插入图片描述


一、基本思路

首先,电脑浏览器(最好用火狐或谷歌浏览器)打开某B主的某音主页,复制其网页地址栏的地址。
其次,将复制的网页输入到下面的程序的这个代码里面。
在这里插入图片描述
最后,运行程序,需要等待一两分钟,程序会自动列出博主网页上视频的链接。
在这里插入图片描述

二、程序解析阶段

代码如下:

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

# 创建一个对象实例,用来表示用哪个浏览器爬取
driver = webdriver.Firefox()
# 某个视频的地址
driver.get()
# 等待一下,等打开网页
time.sleep(8)

# 页面打开会弹出一个登录窗口
close = driver.find_element(by=By.CSS_SELECTOR, value='.dy-account-close')
# 等登录窗口弹出来
time.sleep(5)
# 关闭弹出的登录窗口
close.click()
time.sleep(2)

这里我用的是火狐浏览器所以是Firefox(),建议使用火狐浏览器。
当程序执行的时候会自动弹出网页窗口,这个时候不要动它,让程序泡,它自动做完上面代码写的操作。
注释写的很清楚,这里我就不多做解释了。


三、程序处理阶段

代码如下:

url_list = []
# 获视频地址所在的位置
right_url_list = driver.find_elements(by=By.CSS_SELECTOR, value='a.hY8lWHgA.SF0P5HVG.h0CXDpkg')
for url in right_url_list:

    # 获取此位置下的视频链接
    aaa = url.get_attribute('href')
    url_list.append(aaa)
print(url_list)

# 获取视频的标题位置
title_list = []
video_name_list = driver.find_elements(by=By.CSS_SELECTOR, value='.Ja95nb2Z')
for video_name in video_name_list:
		# 获取视频标题元素的内容
    video_name = str(video_name.text)
    
    # 正则表达式处理。只保留中文汉字
    video_ = re.findall(r'[\u4e00-\u9fff]+', video_name)
    
    # 把每个标题匹配到的汉字分别组装起来
    title_list.append(''.join(video_))
print(title_list)

这里面主要涉及到了两个重要的知识点。
一个是 driver.find_elements() 方法;二是正则表达式的相关的东西。大家一定要去百度看一下。要知其然,更要知其所以然。


总结

此程序是在Python 3.11.6 版本的环境,注意哦要不然程序可能运行不起来。
很简单,代码不多,大家好好学技术,你X我也X!!!哈哈哈哈哈哈

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1327582.html

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

相关文章

八:爬虫-MySQL基础

一:MySQL数据库基础 1.MySQL数据库介绍 MySQL是一个[关系型数据库管理系统],由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Rela…

3D模型人物换装系统(二 优化材质球合批降低DrawCall)

3D模型人物换装系统 介绍原理合批材质对比没有合批材质核心代码完整代码修改总结 介绍 本文使用2018.4.4和2020.3.26进行的测试 本文没有考虑法线贴图合并的问题,因为生成法线贴图有点问题,放在下一篇文章解决在进行优化 如果这里不太明白换装的流程可以…

gem5 garnet l1 l2 cache的创建与相连

gem5 garnet l1 l2 cache的创建与相连 主要就是这个图: 细节 我们用的是gem5/configs/deprecated/example/fs.py #fs.py 引入了上两层路径,也就是当前可以看到 gem5/configs/路径。 addToPath("../../")#fs.py引入了gem5/configs/ruby/Ru…

PIC单片机项目(8)——基于PIC16F877A的温度光照检测装置的protues仿真

1.功能设计 使用PIC16F877A单片机,进行温度检测、光照检测。温度使用的是DS18B20,光照检测直接利用的AD转换。 光照太暗就开灯,温度太高就开风扇。温度阈值和光照阈值都实时显示在LCD1602屏幕上面。 完成了protues仿真。文件里面包含代码和仿…

图片转excel:“保留数字格式”在什么场景下该勾

保留数字格式是什么意思呢?顾名思义,就是将转出来的数字保留为数字格式,而不是文本格式。我们知道,OCR程序将图片上的文字识别为电脑可编辑的文字后,如果导入到excel不加处理,则单个数字过长的文字就会被ex…

Python整数常用的方法汇总与Python3 File(文件) 方法

Python整数常用的方法汇总 python3基础之整数常用的方法整理 希望对大家学习或者使用python3能具有一定的参考价值。 __abs__ #返回一个数的绝对值 __add__ #两数相加 __and__ #两数按位与操作 __bool__ …

04-JVM字节码文件结构深度剖析

一、源代码 package com.tuling.jvm;public class TulingByteCode {private String userName;public String getUserName() {return userName;}public void setUserName(String userName) {this.userName userName;} }二、通过javap -verbose TulingByteCode .class反编译 //…

RobotFramework 自动化测试实战进阶篇

工具 Robotframework, 采用PO设计模式 PO模型 PO模型即Page Objects,直译意思就是“页面对象”,通俗的讲就是把一个页面,或者说把一个页面的某个区域当做一个对象,通过封装这个对象可以实现调用。 PO设计的好处 代码复用&…

python实现简单选择排序法

对于排序的方法中,简单选择排序法是相对符合人类的思维的一种方式,对于简单选择排序方法的核心思想是: 从待排序的序列集合中,找到最大值或者是最小值,然后将该值放置在其在最终的排序序列中的位置,也就是…

4.2 克隆

一,什么是克隆? 克隆是指通过共享缓冲区来复制内容(例如,两个窗口共享相同的内容)。 克隆可用于提高性能: 可以减少所需的更新次数。 你可以在多个显示器上显示内容,但只需要更新一个缓冲区…

信息论安全与概率论

目录 一. Markov不等式 二. 选择引理 三. Chebyshev不等式 四. Chernov上限 4.1 变量大于 4.2 变量小于 信息论安全中会用到很多概率论相关的上界,本文章将梳理几个论文中常用的定理,重点关注如何理解这些定理以及怎么用。 一. Markov不等式 假定…

大模型之二十一-小语言模型塞道开启

当前提到大语言模型,大家想到的都是动辄百亿规模以上参数量的模型,13B、70B都是稀疏平常入门级的,但是目前从模型层面来看,模型参数量的规模两极分化已经来临,早期各大公司为了效果怼上去,采取了简单粗暴的…

OpenSergo使用详解

简介 OpenSergo是一个基于微服务治理的标准和生态,覆盖了服务元信息、流量治理、服务容错、数据库/缓存治理、服务注册发现、配置治理等十几个关键领域,覆盖了完整的微服务生命周期(从开发态到测试态,到发布态,再到运…

DMR与DPMR以及DMR的分层

数字移动无线电 (DMR) 和数字专用移动无线电 (dPMR) 是数字对讲机中使用的流行通信技术。 与传统模拟无线电相比,这两种技术都提供了改进的音频质量、增强的安全功能和增加的网络容量。 但是,DMR 和 dPMR 无线电之间使用的技术存在重大差异&#xff…

字符串逆序输出

逆序输出就是本来abc输出的,然后我想让他输出成cba,那么我们还是要用到for循环,只不过原先是从零开始往上加,这回呢,是从上面往下减 我们观察上面这个图片,我们想要输出olleh,那么我们就要从4开…

【CentOS 7.9 分区】挂载硬盘为LVM操作实例

LVM与标准分区有何区别,如何选择 目录 1 小系统使用LVM的益处:2 大系统使用LVM的益处:3 优点:CentOS 7.9 挂载硬盘为LVM操作实例查看硬盘情况格式化硬盘创建PV创建VG创建LV创建文件系统并挂载自动挂载添加:注意用空格间…

redis 从0到1完整学习 (四):字符串 SDS 数据结构

文章目录 1. 引言2. redis 源码下载3. 字符串数据结构4. 参考 1. 引言 前情提要: 《redis 从0到1完整学习 (一):安装&初识 redis》 《redis 从0到1完整学习 (二):redis 常用命令》 《redis…

css图片属性,图片自适应

CSS 图片属性指南:background-size 和 object-fit 在前端开发中,使用图片是非常常见的。为了让图片在网页中显示得更好,CSS 提供了多种属性来调整和控制图片的大小和布局。其中,background-size 和 object-fit 是两个常用的属性&a…

2023 年人工智能研究与技术排名前 10 的国家

人工智能研究是一项全球性的工作。虽然美国和中国因其对人工智能的贡献而备受关注,但事实是,世界各国都在涉足这项技术,尝试新的突破,并吸引投资者的关注。 斯坦福大学的《2023年人工智能报告》估计,到 2022 年&#…

Mybatis-Plus——03,CRUD改

CRUD改 一、CRUD——改update————————如觉不错,随手点赞,关注,收藏(* ̄︶ ̄),谢谢~~ 一、CRUD——改update Test//测试更新public void updateTest(){User user new User();user.setId(3L);//怎么改…