Python 爬虫之下载视频(二)

爬取某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.hqwc.cn/news/291691.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql SQL执行超时问题

show variables like max_execution_time 使用这个命令查看了,没有设置sql执行超时时间,那么大概率问题就出在阿里的Druid数据库连接池出了问题 尝试着socketTimeout由60000毫秒改成10000毫秒,果然执行了十几秒就超时报错了 socketTime…

vue2 之 实现pdf电子签章

一、前情提要 1. 需求 仿照e签宝,实现pdf电子签章 > 拿到pdf链接,移动章的位置,获取章的坐标 技术 : 使用fabric pdfjs-dist vuedraggable 2. 借鉴 一位大佬的代码仓亏 : 地址 一位大佬写的文章 :地址 3. 优化 在大佬的代码…

Ubuntu 常用命令之 man 命令用法介绍

📑Linux/Ubuntu 常用命令归类整理 man命令在Ubuntu系统中是一个非常重要的命令,它用于查看系统的手册页。手册页是Linux和Unix系统中的一种在线文档,用于描述系统中的命令、函数、配置文件等的详细信息。 man命令的基本格式是 man [选项] …

vue-内网,离线使用百度地图(地图瓦片图下载静态资源展示定位)

前言 最近发现很多小伙伴都在问内网怎么使用百度地图,或者是断网情况下能使用百度地图吗 后面经过一番研究,主要难点是,正常情况下我们是访问公网百度图片,数据,才能使用 内网时访问不了百度地图资源时就会使用不了&…

Flutter本地化(国际化)之App名称

文章目录 Android国际化IOS国际化 Flutter开发的App,如果名称想要跟随着系统的语言自动改变,则必须同时配置Android和IOS原生。 Android国际化 打开android\app\src\main\res\values 创建strings.xml 在values上右键,选择New>Values Res…

12、Qt:用QProcess类启动外部程序:简单使用

一、说明 简单使用:在一个函数中,使用QProcess类的临时对象调用可执行文件exe,只有这个exe执行完了,这个函数才往下执行,一次性打印出exe所有输出信息;复杂使用:创建QProcess类的全局对象&…

使用HTTP协议有哪些风险?HTTP与HTTPS的区别是什么

作为两种常见的网络协议,HTTP和HTTPS都是用于在浏览器和服务器之间传输数据的。然而在保障数据安全性方面,HTTPS远远优于HTTP。在网络安全愈发重要的当下,HTTP协议的不安全性使得其逐渐被淘汰弃用。那么使用HTTP协议有哪些风险呢?…

Unity中Shader缩放矩阵

文章目录 前言一、直接相乘缩放1、在属性面板定义一个四维变量,用xyz分别控制在xyz轴上的缩放2、在常量缓存区申明该变量3、在顶点着色器对其进行相乘,来缩放变换4、我们来看看效果 二、使用矩阵乘法代替直接相乘缩放的原理1、我们按如下格式得到缩放矩阵…

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

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

伽马校正:FPGA

参考资料: Tone Mapping 与 Gamma Correction - 知乎 (zhihu.com) Book_VIP: 《基于MATLAB与FPGA的图像处理教程》此书是业内第一本基于MATLAB与FPGA的图像处理教程,第一本真正结合理论及算法加速方案,在Matlab验证,以及在FPGA上…

人工智能可以战胜人类智慧大脑么?

引言 在当今快速发展的科技时代,人工智能的进步日新月异,引发了一场深刻的讨论:能否有一天,人工智能能够超越甚至战胜人类智慧?这个问题涉及到人类认知的广泛领域,牵涉到人类思维的深层次特质以及AI技术在…

产业园区运营管理方案的六大核心要素

产业园区是我国区域经济的重要载体,是一个集产业、技术、服务、管理等于一体的经济组织形态。随着我国经济的高速发展,各地园区快速扩张,彼此间竞争日益激烈,在这样的大环境下,如何做好园区的运营管理,保障…