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

2023-12-14 22:20:11

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

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)

尾语

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

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

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

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

文章来源:https://blog.csdn.net/python56123/article/details/134880739
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。