1.python爬虫爬取视频网站的视频可下载的源url

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 一、爬取的源网站
  • 二、实现代码
  • 总结


一、爬取的源网站

http://www.lzizy9.com/
在这里以电影片栏下的动作片为例来爬取。
在这里插入图片描述
在这里插入图片描述
可以看到视频有多页,因此需要多页爬取。

二、实现代码

import requests
from bs4 import BeautifulSoup
import osif __name__=='__main__':# headers是解决requests请求反爬的方法之一,相当于我们进去这个网页的服务器本身,假装自己本身在爬取数据。# 对反爬虫网页,设置headers的信息可以让我们的爬取操作模拟成浏览器取访问网站。# 当访问太频繁的时候,容易被服务器禁止访问,这时可以设置多个代理头,通过随机选择某一个代理头来爬取数据,这样可以避免使用同一个头频繁访问的封禁问题。headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'}headers2 = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36',}# 通过requests.get方法可以发送GET请求html_doc = requests.get(f"http://www.lzizy9.com/index.php/vod/type/id/6/page/1.html", headers=headers)# BeautifulSoup将复杂的HTML文件转化为一个Python对象,使得用户可以更方便地解析、搜索和修改HTML内容。# html_doc.text获取网页的HTML内容soup = BeautifulSoup(html_doc.text, 'html.parser')# 使用findALL提取网页中的信息,其返回的是一个可迭代的对象,具体的用法自行搜索# 我们要爬取所有的视频,需要识别视频一共有多少页,其返回结果为['/index.php/vod/type/id/6/page/61.html'],根据参数我们得知一共有61页视频href_values = [link['href'] for link in soup.findAll('a', title='尾页')]# 获取页数,并将字符串string转化为int整数end_page = int(href_values[0][30:32])# 遍历每一页来获取视频的url链接for page in range(1, end_page+1):# 此处获取网页信息与上面类似html_page = requests.get(f"http://www.lzizy9.com/index.php/vod/type/id/6/page/{page}.html", headers=headers)page_values = BeautifulSoup(html_page.text, "html.parser")# 找视频播放的链接,其在标签为a,class为"module-item-title"的下面href_players = [link['href'] for link in page_values.findAll('a', attrs={"class": "module-item-title"})]for href in href_players:# 寻找播放界面的规律,发现其除了id号不同以外,其他的都一样,从上面获取的视频播放链接中提取id号id = href[25:30]url = f"http://www.lzizy9.com/index.php/vod/play/id/{id}/sid/1/nid/1.html"html_player = requests.get(url, headers=headers)player_values = BeautifulSoup(html_player.text, "html.parser")href_video = player_values.findAll('iframe')    # 注意这里是没有获取到信息的,因为HTML源码中的iframe标签是js加载的,因此通过requests无法获取,这里大家可以想别的办法获取视频的真实链接print(href_video)

注意这个代码在最后一次捕获标签iframe时,并没有捕捉到,这是因为爬取的标签不在源HTML源代码中,而是通过js加载进来的,我目前也是第一次碰到这种情况,不过大部分视频网站都是可以正常爬取的,在这里只是一个爬取模板,这个爬取可以用到很多网站。

总结

最后获取的是视频的下载地址url,如果要爬取视频还需要写一个视频下载脚本,可以看后面的教程。

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

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

相关文章

XYCTF2024 RE ez unity 复现

dll依然有加壳 但是这次global-metadata.dat也加密了,原工具没办法用了,不过依然是可以修复的 a. 法一:frida-il2cpp-bridge 可以用frida-il2cpp-bridge GitHub - vfsfitvnm/frida-il2cpp-bridge: A Frida module to dump, trace or hijac…

Anaconda的环境快速迁移(目前windows,未来更新linux)

摘要: 日常办公经常需要在新机器上部署运行环境并进行代码调试,尤其是在AI迅速发展的今天,python已经成为了强有力的AI领域编程语言之一。为了方便对不同windows下python代码工程进行快速部署。本文主要从工具环境的安装、原环境的快速打包、…

【计算机毕业设计】基于SpringBoot+Vue智能停车计费系统设计与实现

目录 一、项目介绍 二、项目主要技术 三、系统功能结构设计 四、系统详细功能的实现 4.1 前台功能实现 4.2 管理员模块实现 4.3 用户后台模块实现 五、实现代码 一、项目介绍 该系统采用了java技术、SpringBoot 框架,连接MySQL数据库,具有较高…

Flutter分模块开发、模块可单独启动、包含Provider

前言 目前Flutter都是在一个项目中,创建不同目录进行模块开发,我进行Android原生开发时,发现原生端,是可以将每个模块独立运行起来的,灵感来自这; 折腾了几天,终于给整出来了。 1、创建根目录…

QT7_视频知识点笔记_1_ 基础知识(帮助文档),窗口(内存回收机制),信号槽(传参),Lambda表达式

1.QT基础 QT是一个框架,不用像C语言自己从底层写,需要的功能可以先看是否QT库中有直接可使用的 帮助文档的使用:F1跳入帮助文档, QT中常用的类:比如QPushbutton,查看帮助文档则可知道对应的函数和解决方…

我独自升级:崛起怎么下载 我独自升级游戏下载教程分享

定于5月8日全球揭幕的《我独自升级崛起》——一款扣人心弦的动作RPG巨制,灵感采撷于同名动画及网络漫画的热潮,誓将引领满怀热忱的玩家步入一场交织着深邃探索和宏大规模的奇妙冒险。该游戏立足于一个独树一帜的网络武侠宇宙,细腻刻画了一个凡…

学华为沟通,汇总5大项目沟通技巧

高效沟通在项目管理中的重要性不容小觑,它是确保项目顺利进行、提升团队协作效率、实现项目目标的关键因素。如果沟通不畅,往往容易导致成员对项目目标理解不一致,或信息传递不及时不准确,导致项目工作方向偏差,增加项…

[Collection与数据结构] 七大排序算法汇总

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏:🍕 Collection与数据结构 (90平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 🧀Java …

Python查询PostgreSQL数据库

哈喽,大家好,我是木头左! Python与PostgreSQL的连接 需要了解如何在Python中连接到PostgreSQL数据库。这通常涉及到使用一个库,如psycopg2,它是Python中用于PostgreSQL的最流行的适配器。安装psycopg2非常简单&#x…

好用的win10电脑桌面便利贴,桌面便签小工具

在日常办公中,我们经常需要记录重要事项、提醒任务或者临时想法。这时,一款好用的电脑桌面便签或便利贴小工具就显得尤为重要。它们能够帮助我们高效地管理信息,提升工作效率。 那么好用的win10电脑桌面便利贴是哪个呢?电脑桌面便…

oracle 8i系统检查

oracle 8i系统检查 set echo on spool d:\bk\1.txt select sysdate from dual; --版本信息 select * from v$version; --安装的产品 col PARAMETER for a50; col value for a10; select * from v$option order by 2; --用户信息 set linesize 100 set pagesize 100 COL USE…

SpringBoot集成阿里云短信验证码服务

一:前言 最近在项目开发过程中,需要去写一个发送手机短信验证码的功能。在网上查了一下,有很多服务器可供选择,本文的话是基于阿里云服务的短信验证码功能实现。 关于注册和开通服务这些需要操作的,请各位小伙伴参考官…

Burp和Proxifier抓包微信小程序

1、Burp设置代理 2、浏览器下载证书 3、安装证书 4、Proxifier设置代理 5、Proxifier设置Proxification Rule 6、Burp查看抓包数据 打开一个小程序,可以看到WeChatAppEx的流量先经过Proxifier,再经过127.0.0.1:8080到Burp

CWDM、DWDM、MWDM、LWDM:快速了解光波复用技术

在现代光纤通信领域,波分复用(WDM)技术作为一项先进的创新脱颖而出。它通过将多个不同波长和速率的光信号汇聚到一根光纤中来有效地传输数据。本文将深入探讨几种关键的 WDM 技术(CWDM、DWDM、MWDM 和 LWDM)&#xff0…

字节8年经验之谈 —— 手把手教你做测试流程优化!

一、需求阶段 1. 梳理提需求流程 (1)规范需求list时间 有些团队可能会今天提一个需求,明天提一个;可以制定一个每周过需求list的时间,统一安排过本周的需求,并对需求进行优先级排序,开发和QA…

Android 状态栏WiFi图标的显示逻辑

1. 状态栏信号图标 1.1 WIFI信号显示 WIFI信号在状态栏的显示如下图所示 当WiFi状态为关闭时,状态栏不会有任何显示。当WiFi状态打开时,会如上图所示,左侧表示有可用WiFi,右侧表示当前WiFi打开但未连接。 当WiFi状态连接时&#x…

创造未来知识管理新篇章:Ollama与AnythingLLM联手打造个人与企业的安全知识库!

一 Ollama 1.1 简介 Ollama是一个开源的大型语言模型服务工具,它帮助用户快速在本地运行大模型。通过简单的安装指令,用户可以执行一条命令就在本地运行开源大型语言模型,如Llama 2。Ollama极大地简化了在Docker容器内部署和管理LLM的过程,使得用户能够快速地在本地运行大…

Vite构造Vue3

环境安装 node.js安装-CSDN博客 初始化Vue项目安装脚手架_vue init webpack安装脚手架-CSDN博客 选择Vue框架 ,项目名称可以自定义,我使用默认的 vite-project 选择JS 进入项目安装依赖 安装路由

Linux服务器常用巡检命令

在Linux服务器上进行常规巡检是确保服务器稳定性和安全性的重要措施之一。以下是一些常用的巡检命令和技巧: 1. 查看系统信息 1.1 系统信息显示 命令:uname -a ​​​​ [rootlinux100 ~]# uname -a Linux linux100 4.15.0-70-generic #79-Ubuntu SMP…

mac自定义快捷键打开系统应用

最终效果是达成altg直接打开浏览器,解放双手、再也不需要移动鼠标双击打开应用啦!!!~ 1.commandspace输入自动操作 2.选择快速操作 3.选择使用工具、运行appleScrpit 4.输入打开浏览器代码 tell application "G…