话说人生苦短,我用Python。

如果学python不是为了下载这些视频,那将毫无意义!
啊呸,老色批


咳咳,我们开始正题。

一、事前前奏

首先没装Python、pycharm的铁子先自己安装一下,我就不写安装了。

要看视频教程的话,在左侧扫码即可,我有专门录制讲解视频。

然后就是模块了,还是爬虫老大件 requests ,直接 pip 安装即可,requests 是数据请求模块。

win+r 打开运行框输入 cmd 按回车,在弹出来的命令提示符窗口输入 pip install requests 回车即可安装成功。

  • 安装失败原因
    1、 pip 不是内部命令,解决方法(设置环境变量)
    2、出现大量报红 (read time out) ,解决方法(因为是网络链接超时, 需要切换镜像源)
    3、cmd里面显示已经安装过了,或者安装成功了,但是在pycharm里面还是无法导入,解决方法(可能安装了多个python版本 (anaconda 或者 python 安装一个即可) 卸载一个就好,或者你pycharm里面python解释器没有设置好)

镜像源

清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:https://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:https://pypi.hustunique.com/
山东理工大学:https://pypi.sdutlinux.org/
豆瓣:https://pypi.douban.com/simple/

安装方式

例如

pip3 install -i https://pypi.doubanio.com/simple/ 模块名

如何配置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的选项,点击确定,重启即可生效。

二、正文

前奏完了,我们直接进入主题…

地址我把关键的删掉了,第一个 v.6 第二个 haokan.baidu

1、思路流程

我们怎么去实现一个pa虫案例?

每个网站数据结构都是不一样的,需要自己重新去分析去抓包,但pa虫基本就这个流程。

1、数据来源分析

  • 首先确定自己的目标地址以及目标数据来源,确定url地址;
  • 通过开发者工具进行抓包分析;

2、代码实现过程

  • 发送请求,对于刚刚分析得到url地址发送请求;
  • 获取数据,获取服务器返回 response数据;
  • 解析数据,提取我们想要内容 ,视频播放url地址以及视频标题;
  • 保存数据,保存本地文件夹;

2、代码展示

首先导入模块

import requests
import re

re是正则表达是模块,内置的,不用安装。只要安装 requests 就好了。

发送请求

对于刚刚分析得到url地址发送请求

I. 请求url网址 [理解为电话号码];
II. 请求方式;
III. headers伪装需要加什么参数、请求头、字典数据类型、键值对形式;

for page in range(26, 29):print(f'====================================正在采集第{page}页数据内容====================================')url = f'https://minivideo/getMiniVideoList.php?act=recommend&page={page}&pagesize=25'headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36'}response = requests.get(url=url, headers=headers)

<Response [200]> 返回response响应对象 200 状态码表示请求成功。

获取数据

获取服务器返回response数据

response.text 获取响应体文本数据           字符串数据类型
response.json() 获取响应体json字典数据     字典数据类型

如果返回数据是一个完整 json 数据格式,可以直接获取 response.json() 为了方便之后提取内容。
字典取值更方便,可以直接根据键值对提取数据内容,根据冒号左边的内容,提取冒号右边的内容。

先取 content 再取list ,返回的就是列表数据。

print(response.text)
print(response.json()['content']['list'])

这个返回的列表就包含了视频的数据信息,后面的地址我就没截图了,我怕~

解析数据

提取我们想要内容、视频播放url地址以及视频标题。

for index in response.json()['content']['list'][14:]:title = index['title']play_url = index['playurl']  # 快速复制 ctrl + Dnew_title = re.sub(r'[\/:*?"|<>]', '', title)print(title, play_url)

保存数据

video_content = requests.get(url=play_url).content
with open('video\\' + new_title + '.mp4', mode='wb') as f:f.write(video_content)
print('视频保存完成: ', title, play_url)

补充

json获取数据

import requests
import re
import json
url = 'https://com/web/search/api?pn=4&rn=10&type=video&query=%E7%BE%8E%E5%A5%B3'
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36'
}
json_data = requests.get(url=url, headers=headers).json()
for index in json_data['data']['list']:index_url = index['url']html_data = requests.get(url=index_url, headers=headers).textvideo_info = re.findall('window.__PRELOADED_STATE__ = (.*?);.*?document', html_data)[0]json_data_1 = json.loads(video_info)title = json_data_1['curVideoMeta']['title']video_url = json_data_1['curVideoMeta']['clarityUrl'][-1]['url']print(title, video_url)

3、结果展示


兄弟们,今天的分享就到这里,记得点赞收藏!

如何用python批量下载这些视频?只需 15 行代码,即可轻松实现相关推荐

  1. Python到底有多强大?只需 15 行代码即可进行人脸检测

    无论你是最近开始探索OpenCV还是已经使用它很长一段时间,在任何一种情况下,您都一定遇到过"人脸检测"这个词.随着机器变得越来越智能,它们模仿人类行为的能力似乎也在增加,而人脸检 ...

  2. Python批量下载XKCD漫画只需20行命令

    XKCD是一个流行的极客漫画网站,其官网首页有一个 Prev 按钮,让用户导航到前面的漫画.如果你希望复制该网站的内容以在离线的时候阅读,那么可以手动导航至每个页面并保存.但手动下载每张漫画要花较长的 ...

  3. 【高代码文件格式API】道宁为您提供文件格式API集——Aspose,只需几行代码即可创建转换和操作100多种文件格式

    Aspose系列产品是 高代码文件格式API 使您的应用程序能够处理 适用于所有主要平台的 Word.Excel.PDF.PowerPoint.Outlook 和100多种其他文件格式 Aspose提 ...

  4. 黑进iPhone让手机崩溃重启,只需15行代码:iOS漏洞你可知?

    黑栗子 发自 麦蒿寺 量子位 出品 | 公众号 QbitAI 有人找到了iOS系统的弱点. TechCrunch报道,一个名叫Sabri Haddouche的网络安全研究人员发推特说,只要15行CSS ...

  5. 【Python】只需2行代码,轻松将PDF转换成Word

    编辑:数据分析与统计学之美 可将 PDF 转换成 docx 文件的 Python 库.该项目通过 PyMuPDF 库提取 PDF 文件中的数据,然后采用 python-docx 库解析内容的布局.段落 ...

  6. 利用Python只需3行代码即可生成验证码

    现在验证码的种类真的是越来越多,短信验证码.语音验证码.图片验证码.滑块验证码 ... 我们在 PC 的网页端或者手机上的 app 进行登录或者注册时,应该总会遇见图片验证码,比如下面这类: 很多人学 ...

  7. 【Python】只需2行代码,轻松将PDF转换成Word(含示范案例)

    文章目录 一.前期准备 二.pdf2docx功能 三.限制 四.案例 一.前期准备 可将 PDF 转换成 docx 文件的 Python 库.该项目通过 PyMuPDF 库提取 PDF 文件中的数据, ...

  8. 谷歌浏览器地址转换成二维码的插件,只需几行代码即可实现

    谷歌浏览器插件,是利用javascript进行编写的.具体代码参考在github里面,这是本人简单编写的一个谷歌浏览器地址转换成二维码的插件,里面的代码思路本文暂时不做解析,只是介绍如何使用这个插件. ...

  9. python怎么下载网络歌曲_教你如何用Python批量下载自己喜欢听得音乐

    文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 音乐是生活的调剂品,目前很多的音乐只能播放不能下载.生为技术员的我们,怎么甘心呢? ...

最新文章

  1. too many indices for tensor of dimension 3
  2. 1.1 对象的概念及面向对象的三个基本特征
  3. Codeforces 1025 题解
  4. linux常用命令总结
  5. Spring4Shell的漏洞原理分析
  6. 【CF1047D】Little C Loves 3 II【构造】【赛瓦维斯特定理】
  7. Quartz 2 Scheduler示例
  8. 消息称腾讯将裁撤10%中层干部 官方暂未回复
  9. 总结几个与模块相关的命令
  10. SQL SERVER日期函数详细用法
  11. 初级会计资格-初级会计实务-知识点总结大全
  12. compass watch出错
  13. PR剪辑-电子相册学习笔记
  14. 鸿蒙os能支持c语言吗,再次确认华为鸿蒙OS系统采用C预言开发,流畅度相当ios
  15. opengl android 纹理贴图 代码,Android 使用opengl es的纹理贴图白屏问题请教。
  16. 比赛之前的最后一点点总结
  17. 使用css将彩色图片转换为黑白图片
  18. C代码实现从FTP上下载文件
  19. 金岩石:危机才刚刚开始
  20. 第2节 物理层基本概念及PacketTracer仿真

热门文章

  1. spring-boot-2.0.3启动源码篇二 - run方法(一)之SpringApplicationRunListener
  2. Ubisoft Connect失去连接解决办法
  3. 经典回顾 | 第一个Anchor-Free、NMS-Free 3D目标检测算法!
  4. PCA分析法的python主要代码
  5. slurm(一) —— 简介
  6. 古剑奇谭如何修改服务器,《古剑奇谭3》设置游戏默认存档服务器方法
  7. 4.1-4.2 HD-GR导航软件概述和软件任务结构介绍
  8. ghost和WINHEX磁盘备份功能的区别
  9. python编写的双击genesis2000导入tgz的脚本
  10. ubuntu20.04修改系统时间