用python批量把这些好看的视频下载到本地

本文是一篇针对初学者的Python爬虫教程,详细介绍了如何使用Python进行网页视频的爬取。首先讲解了Python环境的搭建,包括Python、PyCharm的安装及模块requests的安装与配置。接着,通过实例展示了爬虫的基本流程,包括数据来源分析、代码实现、解析数据和保存视频。在代码部分,演示了如何发送请求、获取响应、解析JSON数据并下载视频。文章最后提供了全套的Python学习资料和面试题,旨在帮助读者快速上手Python爬虫实践。

话说人生苦短,我用Python。

如果学python不是为了爬视频,那将毫无意义!

在这里插入图片描述
啊呸,老色批

在这里插入图片描述
咳咳,我们开始正题。

一、事前前奏

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

安装教程和软件可以在这个群里获取,我还给大家准备了大量的Python学习资料,直接在群里就可以免费领取了。

然后就是模块了,还是爬虫老大件 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解释器?

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

点击齿轮, 选择add。

添加python安装路径

pycharm如何安装插件?

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

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

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

安装成功之后是会弹出重启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 + D
    new_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).text
    video_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技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


这份完整版的Python全套学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

Python资料、技术、课程、解答、咨询也可以直接点击下面名片,添加官方客服斯琪

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值