一个简单得爬虫小案例:获取西瓜网视频数据【python】

news2024/11/15 11:02:22

嗨喽~大家好呀,这里是魔王呐 ❤ ~!

python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取

第三方模块:

  • requests >>> pip install requests

环境介绍:

  • python 3.8 解释器

  • pycharm 编辑器

思路分析

找到数据来源

你要爬取的视频 筛选 找不到的情况下 目的是找视频链接

  1. 在网页源代码当中寻找

  2. 在XHR当中寻找

  3. 全局搜索m3u8


在网页源代码当中
先访问到 https://www.ixigua.com/7258418700380799499?logTag=9b34beaa8f46169ebe1d
从这个里面获取到网页源代码
将网页源代码当中我们所需要的链接取出来
将链接转换为正常的链接
访问视频链接
保存视频
base64编码的特征:
    A-Z a-z 0-9 = /
    结尾 可能会出现等于号

代码展示

import requests     # 第三方库 用来 发送请求的(访问网站的)
import re           # 内置模块 无需安装
import base64       # 内置模块

请求头 (伪装信息)

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
headers = {
    'Cookie': 'MONITOR_WEB_ID=8d5f04e0-fe22-47a6-a491-b16fa6947d63; s_v_web_id=verify_ljjyg5tm_onV1WDIr_W0td_4OWn_8Dxc_yi4nDyEV00P3; passport_csrf_token=8ffd23674c978db5d35b066b9b31569a; passport_csrf_token_default=8ffd23674c978db5d35b066b9b31569a; passport_auth_status=695e58f3edfbdafaf9b2f6ddde2201f0%2C; passport_auth_status_ss=695e58f3edfbdafaf9b2f6ddde2201f0%2C; sid_guard=9941c7bb707ab04e04131a7548ea92d4%7C1688990652%7C3024001%7CMon%2C+14-Aug-2023+12%3A04%3A13+GMT; uid_tt=10afba672e2dea7699ecb66806a66367; uid_tt_ss=10afba672e2dea7699ecb66806a66367; sid_tt=9941c7bb707ab04e04131a7548ea92d4; sessionid=9941c7bb707ab04e04131a7548ea92d4; sessionid_ss=9941c7bb707ab04e04131a7548ea92d4; sid_ucp_v1=1.0.0-KDY2ODA0M2QyZTdkOThjNzZhNGY4OWNmZDI3NTM0ZGJlNjllMjVhZDMKFAjo5IrYFxC856-lBhgYIAw4CEAFGgJobCIgOTk0MWM3YmI3MDdhYjA0ZTA0MTMxYTc1NDhlYTkyZDQ; ssid_ucp_v1=1.0.0-KDY2ODA0M2QyZTdkOThjNzZhNGY4OWNmZDI3NTM0ZGJlNjllMjVhZDMKFAjo5IrYFxC856-lBhgYIAw4CEAFGgJobCIgOTk0MWM3YmI3MDdhYjA0ZTA0MTMxYTc1NDhlYTkyZDQ; odin_tt=a3cba10f3b3fe71c240c44f825f7beef39a6aee66ef3bf9137b661f560f038e16f2fbe234c4fd0060fdf65cc4193b429; support_webp=true; support_avif=true; csrf_session_id=21d60d688a437112a38ce0fc450545ee; ixigua-a-s=3; tt_scid=1dUcS4.jRDZttN7D2Mj2aezppJtFVPiFnttxX.A4p7a8o9.v85F6N1VAl.xgFDgD4c05; ttwid=1%7CiWx9zpr2eLSL5pxwfW7PdpTasAnL2Tszm5jFlS0A_ac%7C1690201063%7Ce36e5a1293adc2f5cb3316c408d926dfbf96fcf8b1933005de1c70450765f876; msToken=jPo5YDrt9Tzb3bXRF5fFnXnlaq0Q5JjYKMlzmxLEmT6p-KpwVZuAj4n6gXP6WZoHnaoabF2-euxN7Y82SAXiqUNXT4JdGmPnfNNnMOLxpLtLaFHH8ZMBrfFMSQaZkIA=; __ac_nonce=064be706400f04dd1b96c; __ac_signature=_02B4Z6wo00f01ufp4JQAAIDDhOMg.Npar27nyeQAAN1RLyxEx.ItDdc-ILcgenQFX8wZXjKcWAfDm9KGv9O75jwmTyHu1ERnFIrkMt5iAhHS99qV2xtI.ladx9ZjWGvQgsEp10CW-CPIgI0f56; __ac_referer=https://www.ixigua.com/7258418700380799499?logTag=9b34beaa8f46169ebe1d',
    'Referer': 'https://www.ixigua.com/7258418700380799499?logTag=9b34beaa8f46169ebe1d',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}

请求链接

url = 'https://www.ixigua.com/7258418700380799499?logTag=9b34beaa8f46169ebe1d'

先访问到 https://www.ixigua.com/7258418700380799499?logTag=9b34beaa8f46169ebe1d

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
response = requests.get(url, headers=headers)

从这个里面获取到网页源代码

  • 解决乱码: 找到 charset=“utf-8”
response.encoding = "utf-8"
html_data = response.text

将网页源代码当中我们所需要的(base64编码的)链接取出来

正则表达式

.*?: 替代任意字符多次

4k.*?main_url":".*?" 搜索功能的高级用法
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
mainUrl = re.findall('4k.*?main_url":"(.*?)"', html_data)[0]
# print(mainUrl)

将链接转换为正常的链接

video_url = base64.b64decode(mainUrl).decode()
print(video_url)

保存视频

resp = requests.get(video_url, headers=headers)
open('1.mp4', mode='wb').write(resp.content)

尾语

最后感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇

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

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

相关文章

EasyX图形化学习(二)

1.消息处理---鼠标消息: 1.ExMessage结构体: ExMessage---这个结构体用于保存鼠标消息。 //定义消息结构体变量 ExMessage msg { 0 }; 2.获取消息: (1)peekmessage函数:用于获取一个消息,…

leetcode面试经典150题——36 旋转图像

题目: 旋转图像 描述: 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1: 输入&#x…

【论文阅读】LoRA: Low-Rank Adaptation of Large Language Models

code:GitHub - microsoft/LoRA: Code for loralib, an implementation of "LoRA: Low-Rank Adaptation of Large Language Models" 做法: 把预训练LLMs里面的参数权重给冻结;向transformer架构中的每一层,注入可训练的…

MYSQL练题笔记-子查询-换座位

一、题目相关内容 1)相关的表和题目 2)帮助理解题目的示例,提供返回结果的格式 二、自己初步的理解 没啥思路,我还没做过交换的这种题,所以我觉得这类交换的题以后值得做一个合集,是有点灵活度在里面的&a…

智能优化算法应用:基于黄金正弦算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于黄金正弦算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于黄金正弦算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.黄金正弦算法4.实验参数设定5.算法结果6.…

【Proteus仿真】【51单片机】视力保护仪

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真51单片机控制器,使LCD1602液晶,按键、HC-SR04超声波、PCF8591 ADC、光敏传感器、蜂鸣器、LED等。 主要功能: 系统运行后,LCD1602显示…

云计算:Vmware 安装 FusionCompute

目录 一、理论 1.FusionCompute 二、实验 1.Vmware 安装 FusionCompute(CNA) 2.Vmware 安装 FusionCompute(VRM) 三、问题 1. VRM-WEB登录失败 2.Windows cmd中无法ping通虚拟机 一、理论 1.FusionCompute (…

【C语言】操作符详解(四):结构成员访问操作符

结构成员访问操作符 结构体 ⭐C语言已经提供了内置类型,如: char、short、int、long、float、double等,但是只有这些内置类型还是不够的,假设我想描述学生,描述一本书,这时单一的内置类型是不行的。描述一个学生需要名…

Android VpnService 使用(一)

Android VpnService 使用(一) 本篇算是VpnService 使用的第一篇文章,主要讲述service创建,intent调用. 1: 申请权限 <service android:name".MyVpnService" android:permission"android.permission.BIND_VPN_SERVICE"><intent-filter><ac…

如何将xlsx中的数据通过datagrep导入到mysql数据库表中

在将xlsx数据通过datagrep导入到mysql数据库表中之前需要将xlsx数据导出为csv结尾的格式&#xff0c;因为如果不以csv格式导入会出现乱码。 详细步骤 1、是导入到数据库中没有表 找到对应的数据库&#xff0c;右键点击 选择需要导入的文件&#xff0c;注意一定要选择csv格式…

国家开放大学 湖南开放大学形成性考核 平时作业 统一资料

试卷代号&#xff1a;1258 房屋建筑混凝土结构设计 参考试题 一、单项选择题&#xff08;每小题2分&#xff0c;共计40分&#xff09; 1.( )是将框架结构中的部分跨间布置剪力墙或把剪力墙结构的部分剪力墙抽掉改为框架承重。 A.梁板结构体系 B.框…

Android开发的技术与开发流程

目录 引言 1. Android开发环境搭建 1. 安装Java Development Kit&#xff08;JDK&#xff09; 2. 安装Android Studio 3. 配置虚拟设备&#xff08;可选&#xff09; 4. 创建你的第一个Android项目 5. 连接实体设备&#xff08;可选&#xff09; 2. Android基础知识 1…

CSS第二天导读

1&#xff0c;Emmet语法 Emmet语法的前身是Zen coding&#xff0c;它使用缩写&#xff0c;来提高html / css 的编写速度&#xff0c;Vscode内部已经集成该语法 1.1&#xff0c;快速生成HTML结构语法 1.想要快速生成多个相同标签&#xff0c;加上*就可以了&#xff0c;比如 d…

ChatGLM大模型推理加速之Speculative Decoding

目录 一、推测解码speculative decoding 1、自回归解码 2、speculative decoding 3、细节理解 二、核心逻辑代码 1、算法流程代码 2、模型自回归代码 a、带缓存的模型自回归实现代码 b、优化版本带缓存的模型自回归实现代码 c、ChatGLM的past_key_values的回滚 三、…

前端已死?别低估前端,他是互联网世界的核心!【这是一篇治愈系文章】

文章目录 &#x1f4a5; AI回答&#x1f98b; 现状&#x1f989; 焦虑&#x1f409; 力量&#x1f985; 观点&#x1f423; 粗浅分析&#x1f9a5; 快乐的韭菜&#x1f3c6; 总结 &#x1f4a5; AI回答 前端已死&#xff1f; ai的答案是这样: 前端并没有死掉&#xff0c;它仍然…

【论文阅读】O’Reach: Even Faster Reachability in Large Graphs

Hanauer K, Schulz C, Trummer J. O’reach: Even faster reachability in large graphs[J]. ACM Journal of Experimental Algorithmics, 2022, 27: 1-27. Abstract 计算机科学中最基本的问题之一是可达性问题&#xff1a;给定一个有向图和两个顶点s和t&#xff0c;s可以通过…

python socket编程8 - PyQt6界面实现TCP server/client 多客户端通讯的例子

一、小总结&#xff1a; 首先&#xff0c;在 《python socket编程5 - 最简单的命令行启动的tcp/udp server/client例子》 中实现了最简单的TCP/UDP server和client在命令行下可执行的代码。 然后&#xff0c;分别在《python socket编程6 - 使用PyQt6 开发UI界面实现TCP server…

[c++] 意识需要转变的一个例子,全局变量的构造函数先于main执行

最近还遇到一个例子是关于&#xff1a;从C转C开发需要注意的一个意识问题。本人遇到的这个问题是&#xff0c;带着C的意识来看C的代码&#xff0c;然后根据代码看&#xff0c;有一个全局变量的值在main函数进入之后才会更改&#xff0c;所以百思不得其解&#xff0c;这个变量怎…

(反序列化)小记录

目录 [CISCN 2023 华北]ez_date 绕过MD5和sha1强相关绕过 date()绕过 payload [FSCTF 2023]ez_php [CISCN 2023 华北]ez_date <?php error_reporting(0); highlight_file(__FILE__); class date{public $a;public $b;public $file;public function __wakeup(){if(is_a…

【WebRTC】用WebRTC做即时视频聊天应用

【配套项目源码】 打开即用,设置一个免费的Agora账户就可以实现视频电话。非常好的WebRTC学习和应用项目。 用VSCode打开即可。 https://download.csdn.net/download/weixin_41697242/88630069 【什么是WebRTC?】 WebRTC是一套基于JS的API,能够建立端对端的直接通信,实…