劲爆美女来袭,这不得用python高清保存防止她被封禁

news2024/11/18 0:19:06

前言

大家早好、午好、晚好吖 ❤ ~


环境使用:

  • Python 3.8 解释器

  • Pycharm 编辑器


模块使用:

  • requests

    数据请求 第三方模块 pip install requests <工具>

  • re

    <正则表达式模块>


安装python第三方模块:

  1. win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车

  2. 在pycharm中点击Terminal(终端) 输入安装命令


如何配置pycharm里面的python解释器?

  1. 选择file(文件) >>> setting(设置) >>> Project(项目) >>> python interpreter(python解释器)

  2. 点击齿轮, 选择add

  3. 添加python安装路径


pycharm如何安装插件?

  1. 选择file(文件) >>> setting(设置) >>> Plugins(插件)

  2. 点击 Marketplace 输入想要安装的插件名字 比如:翻译插件 输入 translation / 汉化插件 输入 Chinese

  3. 选择相应的插件点击 install(安装) 即可

  4. 安装成功之后 是会弹出 重启pycharm的选项 点击确定, 重启即可生效


基本思路流程:

一. 数据来源分析:

  1. 明确需求:

    • 采集网站是什么?

    • 采集数据是什么?

      • 视频内容

      • 视频标题

  2. 分析 视频内容 在什么地方

    • 通过开发者工具进行抓包分析:

      I. 打开开发者工具: F12 或者 鼠标右键点击检查选择network

      II. 刷新网页

      III. 在开发者工具当中, 搜索 m3u8 --> 找到一个数据包 getMomentContent

二. 代码实现步骤

  1. 发送请求, 模拟浏览器对于url地址发送请求

  2. 获取数据, 获取服务器返回响应数据

    开发者工具: response

  3. 解析数据, 提取我们想要的数据内容

    • 视频标题

    • 视频播放链接

  4. 保存数据, 把视频内容保存本地文件夹


代码展示

导入模块

# 导入数据请求模块 --> 第三方模块 需要安装 pip install requests
import requests
# 导入格式化输出模块 --> 内置模块 不需要安装
from pprint import pprint
# 导入正则表达式 --> 内置模块 不需要安装
import re

1. 发送请求, 模拟浏览器对于url地址发送请求

  • 安装模块 win + R 输入cmd 在输入安装命令

  • 把爬虫代码伪装成浏览器去发送请求 请求头

    目的: 为了防止被反爬

    对于某些网站, 如果不加headers请求头, 你请求链接可能得不到数据

PS:完整源码如有需要的小伙伴可以加下方的群去找管理员免费领取

for page in range(3, 501):
    print(f'=================正在采集第{page}页的数据内容=================')

视频列表页面

伪装模拟 --> 字典数据类型

    headers = {
        # user-agent 用户代理 表示浏览器基本身份信息
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
    }

发送请求

    html_data = requests.get(url=link, headers=headers).text

“”"

解析数据, 提取我们想要视频ID

.*? 表示任意字符

\d+ 表示匹配0个/多个数字

“”"

    video_id_list = re.findall('<li data-vid="(\d+)">', html_data)
    for video_id in video_id_list:

确定请求链接 --> 字符串

伪装模拟 --> 字典数据类型

        headers = {
            # user-agent 用户代理 表示浏览器基本身份信息
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
        }

发送请求

        response = requests.get(url=url, headers=headers)

<Response [200]> 响应对象, 表示请求成功

        print(response)

“”"
2. 获取数据, 获取服务器返回响应数据

开发者工具: response

爬虫常见报错

response.json(): 获取响应字典数据

requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

原因: 返回数据不是完整json数据格式

解决方法

  1. 先获取响应文本数据<response.text>, 查看数据返回效果

    jQuery112405799477739825281_1672143376828({})

  2. 删除掉, 请求链接里面一段参数callback, 再获取 response.json()

    print(response.json()) 返回一行数据

    pprint(response.json()) 返回多行数据, 展开的效果

字典取值:

键值对 --> 根据冒号左边的内容[键], 提取冒号右边的内容[值]

“”"

提取标题

        title = response.json()['data']['moment']['title']
        new_title = re.sub(r'[/\*:"<>?|\n]', '', title)

提取视频链接

        video_url = response.json()['data']['moment']['videoInfo']['definitions'][0]['url']

“”"

4. 保存数据

需要对于视频播放链接发送请求, 然后获取二进制数据内容

response.content —> 获取响应二进制数据

保存 图片/视频/音频/特定格式的文件 都是获取二进制数据, 然后保存的

“”"

        video_content = requests.get(url=video_url, headers=headers).content
        with open('video\\' + new_title + '.mp4', mode='wb') as f:
            f.write(video_content)
        print(title, video_url)

效果展示





尾语 💝

好了,今天的分享就差不多到这里了!

完整代码、视频讲解、疑惑解答直接点击下方名片自取即可。

宁外给大家推荐一个好的教程:

【48小时搞定全套教程!你和大佬只有一步之遥【python教程】

有更多建议或问题可以评论区或私信我哦!一起加油努力叭(ง •_•)ง

喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!

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

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

相关文章

密码学_AES加密算法

目录 简介 AES的加密过程如下&#xff08;以128位密钥为例&#xff09;&#xff1a; 异或运算 初始变换&#xff08;initial round&#xff09; 字节代换&#xff08;SubBytes&#xff09; 行位移&#xff08;ShiftRows&#xff09; 列混合&#xff08;MixColumns&#x…

Socket套接字(网络编程万字总结-附代码)

文章目录前言一、概念二、分类&#xff08;三类&#xff09;2.1 流套接字&#xff1a;使用传输层TCP协议2.2 数据报套接字&#xff1a;使用传输层UDP协议2.3 原始套接字三、UDP数据报套接字编程3.1 Java数据报套接字通信模型3.2 DatagramSocket API3.2.1 DatagramSocket 构造方…

Shell函数

1、 函数定义 格式一&#xff1a; function name() { Command sequence; } 格式二&#xff1a; name() { Command sequence); } 1、()内是没有参数的&#xff0c;他只是函数定义的固定格式。 2、第八行fun 是函数的调用(第一种方式) 2、 函数传参 1、在Shell中&#xff0c;调用…

Jina 实例秀|基于CLIP模型的跨模态视频搜索

不同于传统的关键词搜索&#xff0c;你不需要给每个视频素材人为地打上标签。使用开源产品 CLIP-as-service&#xff0c;输入画面的描述文本&#xff0c;直接搜索到对应的视频片段。CLIP 是一个强大的模型&#xff0c;能够很好地判别文本和图片是否相关&#xff0c;但将其集成到…

【LeetCode】验证二叉搜索树 [M]

98. 验证二叉搜索树 - 力扣&#xff08;LeetCode&#xff09; 一、题目 给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下&#xff1a; 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。…

微信小程序框架02

目录 1.框架简介 2.视图层 View 2.2 WXML 2.3 WXSS 2.4 JS 3.事件 4.逻辑层 APP service 4.1 生命周期 4.2 页面路由 4.3模块化 1.框架简介 小程序开发框架的目标是通过尽可能简单、高效的方式让开发者可以在微信中开发具有原生 APP 体验的服务。 整个小程序框架系统分为两部…

山东大学机器学习课程资源索引

实验 完整实验代码获取 github repo 【ML实验4】多分类贝叶斯模型 【ML实验5】SVM&#xff08;手写数字识别、核方法&#xff09; 【ML实验6】K-means&#xff08;图像压缩&#xff09; 【ML实验7】人脸识别综合项目&#xff08;PCA、多分类SVM&#xff09; 一个PCA加速技巧 …

数据治理:企业数据治理蓝图

参考《一本书讲透数据治理》、《数据治理》等 文章目录企业数据治理体系企业数据治理9个要素企业数据治理4个层面企业数据治理之道企业数据治理之法企业数据治理之术企业数据治理之器企业数据治理体系 数据治理、数据管理、数据管控三者是什么关系&#xff1f;很多人都搞混&am…

【Spring(二)】IoC入门案例(XML版)

文章目录前言1.IoC入门案例总结前言 上篇文章我们讲了IOC和DI两个核心概念&#xff0c;本篇文章我们会在Spring的环境下来实现它们&#x1f4aa;&#x1f4aa;。 1.IoC入门案例 我们先来实现IoC也就是管理Bean的这套模式&#xff0c;我们先来说说这套程序应该怎么做&#xff0c…

深度学习Week12-训练自己的数据集(YOLOv5)

这周接着详细解析小白YOLOv5全流程-训练实现数字识别_牛大了2022的博客-CSDN博客_yolov5识别数字&#xff0c;上周入门教大家下载配置环境&#xff0c;如果没有的话请参考上周的文章深度学习Week11-调用官方权重进行检测&#xff08;YOLOv5&#xff09;_牛大了2022的博客-CSDN博…

《IDC MarketScape:2022全球通用计算机视觉厂商评估》出炉,腾讯云智能入选

近日&#xff0c;全球领先的IT市场研究和咨询公司IDC发布了2022年度《MarketScape&#xff1a;全球通用计算机视觉厂商评估》报告&#xff08;以下简称“报告”&#xff09;&#xff0c;腾讯云智能凭借在计算机视觉领域领先的技术积累、出色的产品能力和丰富的行业落地实践&…

案例分享:硬件敏捷

“没有人能够在硬件领域推动以两周为单位的循环迭代&#xff01;”当人们谈起敏捷方法在包含了硬件及软件产品开发时&#xff0c;第一反应都是类似的论调。然而&#xff0c;已经有一些团队&#xff0c;尝试将已有的可靠硬件开发理念与少量从敏捷软件中借鉴的新鲜思想结合&#…

系统日志- Journal and Rsyslog

Log文件 Rsyslog 的配置文件/etc/rsyslog.conf Rsyslog的旧的信息会在最前面&#xff0c;新的信息会在最下面。 tail -f /var/log/messages #可以动态监控日志信息logger 发送日志信息 logger -p user.notice #“内容” -p选项测试实验&#xff1a; 1.在/etc/rsyslog.d/文…

基于ThinkPHP框架开发的全套家政服务小程序源码(带调试视频)

家政服务小程序源码 在线派单 商家入驻 多城市带积分开源小程序 了解更多内容可私信我。 1、独立版 ThinkPHP框架 后端全开源&#xff1b; 2. 开发语言&#xff1a;PHP&#xff1b; 3. 数据库&#xff1a;MySQL&#xff1b; 4.小程序端&#xff1a;Uniapp&#xff1b; 5.…

Vuex基础概念用法(新手入门)

一.Vuex概念及解释 定义: vue全局状态管理器。有了Vuex在任意组件/页面都可以访问vuex数据&#xff0c;当数据更新的时候&#xff0c;引用vuex的组件视图会自动更新。也就是说Vuex实现数据全局共享&#xff0c;响应式更新。 1.state&#xff08;存放状态&#xff09; $store…

《flask》flask+mqtt联动快速上手

简介 本文旨在介绍如何快速上手联动flask mqtt&#xff0c;本文将会给出一个简单的demo&#xff0c;用于演示在如何通过访问flask接口来触发mqtt&#xff0c;并在flask运行的基础的上对mqtt进行订阅。 快速上手 因为有项目需求&#xff0c;所以需要flask mqtt进行联动&…

Docker网络中篇-docker网络的四种类型

通过上一篇学习,我们对docker网络有了初步的了解。本篇,咱们就来实战docker网络。 docker网络实战 实战docker网络,我们将从以下几个案例来讲解 1:birdge是什么? 2:host 3:none 4:container 实战网络类型如下: 在docker中,网络的配置是以json格式存在的,下面…

知识变现创业者必读——《知识变现实操手册》

现在越来越多人&#xff0c;正在跑步进入知识变现创业这个赛道。 为什么进入这个赛道&#xff0c;因为能赚钱钱啊&#xff0c;大部分人是受到了知识变现大咖们日入万元&#xff0c;月入十万&#xff0c;这些赚钱效益的刺激&#xff0c;匆忙进入的。 我问一句&#xff0c;你知识…

网络路由技术和协议

网络路由是网络通信的重要组成部分。路由可帮助您的网络组件从可用选项中选择最佳网络路径。这使得网络通信高效可靠。启用此功能的硬件组件称为路由器。监控和管理路由器是网络管理员日常工作中不可或缺的一部分。由于路由器可以决定网络连接和可用性的成败&#xff0c;因此了…

MATLAB-plot绘图函数

plot函数是MATLAB中最核心的二维绘图函数&#xff0c;它有多种语法格式可以实现多种功能。 plot函数的基本调用格式如下。 plot(y) 当y为向量时&#xff0c;是以y的分量为纵坐标、元素序号为横坐标&#xff0c;用直线依次连接数据点&#xff0c; 绘制曲线。若y为实矩阵&#…