Python简单小案例之 筷手美女下载保存本地

news2025/4/15 10:34:58

嗨喽,大家好呀~这里是爱看美女的茜茜呐

知识点:

  • 动态数据抓包

  • requests发送请求

开发环境:

  • python 3.8 运行代码 解释器
  • pycharm 2022.3 辅助敲代码 编辑器
  • requests pip install requests

👇 👇 👇 更多精彩机密、教程,尽在下方,赶紧点击了解吧~

python源码、视频教程、插件安装教程、资料我都准备好了,直接在文末名片自取就可


代码思路步骤

一. 思路分析

找到数据的来源

https://www.***.com/graphql

分析翻页的规律

二. 代码实现
  1. 发送请求 访问到数据来源

  2. 获取数据

  3. 提取数据 将其中的 视频链接 和 标题 全部提取出来

  4. 访问视频链接 拿到视频数据

  5. 保存视频

  6. 翻页获取视频

代码展示

'''
python资料获取看这里噢!! 小编 V:Pytho8987(记得好友验证备注:6  笔芯~)
即可获取:文章源码/教程/资料/解答等福利,还有不错的视频学习教程和PDF电子书!
'''
import requests     # 第三方库
import os           # 内置

if not os.path.exists('video'):
    os.mkdir('video')


# 请求头 (告诉服务端我是谁)
headers = {
    'Cookie': 'kpf=PC_WEB; clientid=3; did=web_279f6644708643f6590253c172444317; userId=3293066791; kuaishou.server.web_st=ChZrdWFpc2hvdS5zZXJ2ZXIud2ViLnN0EqABAUvl7mYJ4xsmuzfvkQzKKze_QzNmIN7a-XfNXqJbHNoJuiJqClkfn-LQ_9GJoW62jRigxMAT5qb0sTJNe9EGn6-4BmmitO-BbHbFQ3uEzwYDnVx039lB9kEkg-rhsXo-OiXIn2bzWcR9-WxFEMzOG5rpFged5V5QZhhD3b55S0uTsu0-nM6cRp9-KBNFhC551J_4psKOQT227BtmqSgt8BoSoJCKbxHIWXjzVWap_gGna5KjIiBJh6Op1qRW7iZ9naTe905G3rzeGh9DPQSTh_LVDnPvWygFMAE; kuaishou.server.web_ph=dc266d1649e270d70181a587bf584bcf975b; kpn=KUAISHOU_VISION',
    'Referer': 'https://www.kuaishou.com/profile/3x3ie8ckzpzpzdq',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36'
}
url = 'https://www.----.com/graphql'
pcursor = ""
while True:
    # 请求体(告诉服务端 我需要什么数据)
    json = {
        "operationName":"visionProfilePhotoList",
        "variables":{
            "userId":"3x66mtau2i999v6",
            "pcursor":pcursor,
            "page":"profile"
        },
        "query":"fragment photoContent on PhotoEntity {\n  __typename\n  id\n  duration\n  caption\n  originCaption\n  likeCount\n  viewCount\n  commentCount\n  realLikeCount\n  coverUrl\n  photoUrl\n  photoH265Url\n  manifest\n  manifestH265\n  videoResource\n  coverUrls {\n    url\n    __typename\n  }\n  timestamp\n  expTag\n  animatedCoverUrl\n  distance\n  videoRatio\n  liked\n  stereoType\n  profileUserTopPhoto\n  musicBlocked\n  riskTagContent\n  riskTagUrl\n}\n\nfragment recoPhotoFragment on recoPhotoEntity {\n  __typename\n  id\n  duration\n  caption\n  originCaption\n  likeCount\n  viewCount\n  commentCount\n  realLikeCount\n  coverUrl\n  photoUrl\n  photoH265Url\n  manifest\n  manifestH265\n  videoResource\n  coverUrls {\n    url\n    __typename\n  }\n  timestamp\n  expTag\n  animatedCoverUrl\n  distance\n  videoRatio\n  liked\n  stereoType\n  profileUserTopPhoto\n  musicBlocked\n  riskTagContent\n  riskTagUrl\n}\n\nfragment feedContent on Feed {\n  type\n  author {\n    id\n    name\n    headerUrl\n    following\n    headerUrls {\n      url\n      __typename\n    }\n    __typename\n  }\n  photo {\n    ...photoContent\n    ...recoPhotoFragment\n    __typename\n  }\n  canAddComment\n  llsid\n  status\n  currentPcursor\n  tags {\n    type\n    name\n    __typename\n  }\n  __typename\n}\n\nquery visionProfilePhotoList($pcursor: String, $userId: String, $page: String, $webPageArea: String) {\n  visionProfilePhotoList(pcursor: $pcursor, userId: $userId, page: $page, webPageArea: $webPageArea) {\n    result\n    llsid\n    webPageArea\n    feeds {\n      ...feedContent\n      __typename\n    }\n    hostName\n    pcursor\n    __typename\n  }\n}\n"
    }
    # 1. 发送请求 访问到数据来源
    response = requests.post(url, json=json, headers=headers)
    # 2. 获取数据
    json_data = response.json()
    # 3. 提取数据 将其中的 视频链接 和 标题 全部提取出来
    feeds = json_data['data']['visionProfilePhotoList']['feeds']    # 列表
    pcursor = json_data['data']['visionProfilePhotoList']['pcursor']
    for feed in feeds:  # 将列表里面的元素 挨个遍历出来
        caption = feed['photo']['caption']
        photoUrl = feed['photo']['photoUrl']
        print(caption, photoUrl)
        # # 4. 访问视频链接 拿到视频数据
        # video_data = requests.get(photoUrl).content
        # # 5. 保存视频
        # # wb: 以二进制的方式覆盖写入数据
        # # ab: 以二进制的方式追加写入数据
        # with open(f'video/{caption}.mp4', mode='wb') as f:
        #     f.write(video_data)
    if pcursor == 'no_more':
        break

尾语

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

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

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

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

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

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

相关文章

【C++】类与对象(构造函数、析构函数、拷贝构造函数、常引用)

🌈个人主页:秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343🔥 系列专栏:http://t.csdnimg.cn/eCa5z 目录 类的6个默认成员函数 构造函数 特性 析构函数 特性 析构的顺序 拷贝构造函数 特性 常引用 前言 &…

频谱仿真平台HTZ Communications为私有5G建设铺平道路

韩国的国家监管机构韩国通信委员会(KCA)计划在德思特频谱仿真平台HTZ Communications的支持下加快扩大无线电接入范围,提升全国电信服务的质量和效率。 韩国通信委员会(KCA)在韩国的监管环境中扮演着至关重要的角色&am…

Spring6学习技术|IoC+基于xml管理bean

学习材料 尚硅谷Spring零基础入门到进阶,一套搞定spring6全套视频教程(源码级讲解) IoC 控制反转。是一种设计思想。 1.获取bean对象的方法 通过id,通过class,和双重方式。 ApplicationContext context new Cla…

云呐智能运维硬件包括哪些?智能运维体系包括哪些?

智能运维体系时,能够详细了解该体系包含的各个组成部分。具体来说,我们应该知道智能运维体系中涉及的软件组件有哪些,以及这些组件是如何相互协作以实现高效运维的。此外,智能运维体系中使用的硬件设备感兴趣。列举了智能运维硬件…

测试工具之压测工具JMeter(一)

有时候我们接到的需求是秒杀或者抽奖类的功能开发,这时候可能会在某一时间点大量请求并发,我们手工自测很难发现一些高并发场景下的问题,这时候可以借助一些压测工具帮我们模拟出大量请求来测试我们的接口是否能满足业务要求。JMeter是Apache…

数据分析 — 招聘数据爬取和分析

目录 一、数据获取二、词云图语法1、jieba 分词2、词云图 一、数据获取 需求: 招聘数据获取地址:https://careers.tencent.com/home.html 获取字段:岗位的名称、岗位职责、发布时间 import pandas as pd # 导入 Pandas 库并使用别名 pd im…

深度学习——概念引入

深度学习 深度学习简介深度学习分类根据网络结构划分:循环神经网络卷积神经网络 根据学习方式划分:监督学习无监督学习半监督学习 根据应用领域划分:计算机视觉自然语言处理语音识别生物信息学 深度学习简介 深度学习(Deep Learni…

什么是矩阵的秩?如何计算矩阵的秩?(done)

什么是矩阵的秩?https://search.bilibili.com/all?vt21986927&keyword%E4%BB%80%E4%B9%88%E6%98%AF%E7%9F%A9%E9%98%B5%E7%9A%84%E7%A7%A9%EF%BC%9F&from_sourcewebtop_search&spm_id_from333.1007&search_source5 矩阵本质上是线性方程组。但是方…

Rust可以解决的常见问题

文章目录 前言1. 悬垂指针(Dangling Pointers)修复悬垂指针问题 2. 缓冲区溢出(Buffer Overflow)那么是什么是缓冲区溢出?rust处理缓冲区溢出问题 3. 数据竞争(Data Races)4. 空指针&#xff08…

SICTF Round#3 Web方向 题解WP

100%_upload 题目描述:小茂夫说:一直上传恶意文件尊嘟要生气了,世事莫固守,转变思路求突破 开题,注意有个文件包含 题目把后缀过滤死了,无法上传php后缀文件。文件内容些许过滤,短…

猫头虎分享已解决Bug || Python AI错误处理:IndexError

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

城市智慧驿站是什么?城市智慧驿站有哪些功能

城市智慧驿站作为一种创新性的社会配套设施,开始在多个城市落地使用,引起了社会的关注。 城市智慧驿站是什么?城市智慧驿站是在智慧城市的背景下,城市智慧驿站智慧公厕成为了一种创新性的社会配套建筑。作为景观式模块化建筑&…

聊聊分库分表

文章导读 背景介绍 随着互联网技术的发展,数据量呈爆炸性增长。大数据量的业务场景中,数据库成为系统性能瓶颈的一个主要因素。当单个数据库包含了太多数据或过高的访问量时,会出现查询缓慢、响应时间长等问题,严重影响用户体验。…

ComfyUI新宠,精准位置生成模型GLIGEN,附下载

GLIGEN 是一种在文本到图像模型中指定对象精确位置的直观方法。自带GUI,操作非常便利,可以精确控制要在什么位置画什么内容,比纯文字描述的RPG-DiffusionMaster更精确。 ComfyUI是一个基于节点的图形用户界面(GUI)工具…

24-k8s的附件组件-Metrics-server组件与hpa资源pod水平伸缩

一、概述 Metrics-Server组件目的:获取集群中pod、节点等负载信息; hpa资源目的:通过metrics-server获取的pod负载信息,自动伸缩创建pod; 参考链接: 资源指标管道 | Kubernetes https://github.com/kuberne…

【论文精读】MAE

摘要 将掩码重建任务从nlp引入到cv,提出非对称掩码自编码器。 框架 概述 如上图,本文提出掩码自编码器,即将给定原始信号的部分观测值的情况下重建原始信号,编码器将观察到的部分信号(没有掩码标记)映射到潜在表示,采…

原型设计工具初学者指南:从入门到精通

产品原型设计工具是设计师制作产品原型的必要工具。产品原型工具可以帮助我们解决许多问题,但产品原型工具的选择已经成为一个大问题。除了我们熟悉的产品原型设计工具Axure外,市场上还有许多有用的产品原型设计工具,如即时设计。本文将分享4…

Unity之闪电侠大战蓝毒兽(简陋的战斗系统)

目录 🎨一、创建地形 🎮二、创建角色 🏃2.1 动画 🏃2.2 拖尾 🏃2.3 角色控制 ​🏃2.4 技能释放 🏃2.5 准星 📱三、创建敌人 🐲3.1 选择模型 🐲3.…

体验一下UE5.3的Skeletal Editor

UE5.3中增加了蒙皮网格骨架编辑工具,用户无需导出Fbx就可以直接编辑蒙皮网格,支持修改绑定姿势的骨骼位置、修改蒙皮权重、对已蒙皮多边形进行编辑以及对蒙皮网格减免等操作,就来体验一下。 1.加载插件 要使用Skeletal Editor功能&#xff…

前端秘法基础式终章----欢迎来到JS的世界

目录 一.JavaScript的背景 二.JavaScript的书写形式 1.行内式 2.嵌入式 3.外部式 三.JS中的变量 1.变量的定义 2.JS动态类型变量 2.1强类型和弱类型 3.JS中的变量类型 四.运算符 五.if语句和三元表达式和Switch语句和循环语句 六.数组 1.创建获取数组元素 2.新增…