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

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

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)

尾语

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

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

第二十一章网络通信

网络程序设计基础 局域网与互联网 为了实现两台计算机的通信,必须用一个网络线路连接两台计算机。如下图所示 网络协议 1.IP协议 IP是Internet Protocol的简称,是一种网络协议。Internet 网络采用的协议是TCP/IP协议,其全称是Transmissio…

当你还在纠结用什么技术时,这位独立开发者用PHP和JavaScript实现财务自由了

大家好,我是风筝,微信搜「古时的风筝」,更多干货 一个个人产品卖了5400万,这大概就是最成功的独立开发者了吧 这位独立开发者是 levelsio,他的真名是 Pieter Levels,是一位荷兰的独立开发者。看看人家的工…

C++异常剖析

什么是异常? 在程序运行的过程中,我们不可能保证我们的程序百分百不出现异常和错误,那么出现异常时该怎么报错,让我们知道是哪个地方错误了呢? C中就提供了异常处理的机制。 一、异常处理的关键字 (1&#…

C 语言 变量

变量初始值 全局变量:初始值是 0 局部变量:初始值是 随机的 类型限定符 通常不需要显式使用 register 关键字来优化变量的存储和访问。 关键字 _Complex和_Imaginary分别用于表示复数和虚数(二者皆是数学概念) 变量的声明和定义 c…

逻辑漏洞与越权

逻辑漏洞与越权 越权 如果使用A用户的权限去操作B用户的数据,A的权限小于B的权限,如果能够成功操作,则称之为越权操作。 越权漏洞形成的原因是后台使用了 不合理的权限校验规则导致的。 一般越权漏洞容易出现在权限页面(需要登…

因为 postman环境变量全局变量设置好兄弟被公司优化了!

postman环境变量、全局变量设置 在公司中,一般会存在开发环境、测试环境、线上环境等,如果需要在不 同的环境下切换做接口测试,显然我们需要把所有接口的域名进行修改,如果接 口测试用例较多,那么修改会非常费力&…

selenium安装使用详解

安装selenium不少人使用pip命令来安装selenium,辛辛苦苦安装完之后,还是不能使用。所以我们可以是直接使用编译器,pycharm直接安装selenium扩展包。 同时,在这我为大家准备了一份软件测试视频教程(含面试、接口、自动…

跨境电商系统搭建 无货源系统对接API 反向代购系统

跨境电商系统是为国外的客户代购中国商品的系统,系统实现与国内电商API对接,客户可直接在系统中搜索国内电商平台的商品。查看演示网站 一级功能二级功能 标准版 高级版 企业版 企业旗舰版 大客户尊享版 标准版高级版企业版企业旗舰版大客户尊享版 前台主…

HarmonyOS创建JavaScript(类 Web开发模式)项目

上文 HarmonyOS带大家创建自己的第一个Page页面并实现路由跳转(ArkTS)带大家创建了我们项目中第一个自己创建的page 并完成了一个跳转逻辑的编写 上文的开发模式是 ArkTS 的 也被称为 声明式开发范式 还有一种 javaScript的 类Web开发模式 这种方式就类似于我们传统的前端开发模…

在线教育培训系统开发:开展线上教育模式

近几年,在线教育发展的非常快,市面上的教育机构通过网络实现了专属的线上教育模式。 与传统的教育学习模式相比,教育培训小程序系统能够为学生和教师带来灵活、便捷、高效的学习方式,也为教育行业带来了创新。随着互联网的发展&a…

一文搞懂全连接算法和它的作用

如果你是搞AI算法的同学,相信你在很多地方都见过全连接层。 无论是处理图片的卷积神经网络(CNN),还是处理文本的自然语言处理(NLP)网络,在网络的结尾做分类的时候,总是会出现一个全…

C语言 扫雷游戏

代码在一个项目里完成,分成三个.c.h文件(game.c,game.h,main.c) 在Clion软件中通过运行调试。 /大概想法/ 主函数main.c里是大框架(菜单,扫雷棋盘初始化,随机函数生成雷,玩家扫雷) game.h函数声明(除main函数和游戏函数外的一些函数声明) ga…

【学习记录】从0开始的Linux学习之旅——字符型设备驱动及应用

一、概述 Linux操作系统通常是基于Linux内核,并结合GNU项目中的工具和应用程序而成。Linux操作系统支持多用户、多任务和多线程,具有强大的网络功能和良好的兼容性。基于前面应用与驱动的开发学习,本文主要讲述如何在linux系统上把应用与驱动…

寒冬不再寒冷:气膜体育馆如何打造温馨运动天地

取暖季即将来临,随着气温逐渐下降,人们在寒冷的冬季里如何保持运动热情和身体的健康成为了一项挑战。而在这个时候,气膜体育馆成为了运动爱好者们的理想场所,提供如春般温暖舒适的运动环境。那么,让我们一起揭秘气膜体…

2023年8月8日 Go生态洞察:Go 1.21 版本发布探索

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

【Java】深入剖析Java枚举类

目录 定义1)定义2)内部实现3)方法与源码 高级特性1)switch用法2)自定义传值与构造函数3)枚举实现抽象方法4)枚举注解属性5)枚举实现接口 总结 定义 1)定义 枚举类是Jav…

Oracle的错误信息帮助:Error Help

今天看手册时,发现上面有个提示: Error messages are now available in Error Help. 点击 View Error Help,显示如下,其实就是oerr命令的图形化版本: 点击Database Error Message Index,以下界面等同于命令…

蒙商出海考察“走出去”“引进来”,探索践行“一带一路”倡议

蒙商新思路,出海正当时,内蒙古自治区促进民营经济发展项目新加坡、马来西亚交流行圆满结束 2023年11月19日-11月25日,内蒙古自治区促进民营经济项目新加坡、马来西亚交流考察行顺利举行,此次出海考察行是自治区发展改革委、工商联…

VBA_MF系列技术资料1-237

MF系列VBA技术资料 为了让广大学员在VBA编程中有切实可行的思路及有效的提高自己的编程技巧,我参考大量的资料,并结合自己的经验总结了这份MF系列VBA技术综合资料,而且开放源码(MF04除外),其中MF01-04属于定…

Qt开发学习笔记01

设置窗口背景图 在 .h 文件中添加引用和方法 #include <QPainter> #include <QPixmap> void paintEvent(QPaintEvent *);.cpp 文件中实现 paintEvent void sur_dev::paintEvent(QPaintEvent *ev) {QPainter painter(this);QPixmap pix;pix.load(":/image/bj01…