python爬虫你们最爱的YY小姐姐,这不爬取下来看看?

python爬虫你们最爱的YY小姐姐,这不爬取下来看看?[Python基础]

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理

( 想要学习Python?Python学习交流群:1039649593,满足你的需求,资料都已经上传群文件流,可以自行下载!还有海量最新2020python学习资料。 )
在这里插入图片描述

一、前言

yy平台,直播界的先驱,有很多主播会把一些自己的直播精彩看点上传到该平台下的小视频栏目中今天带大家爬取yy小视频栏目中所有的小视频。

在这里插入图片描述

二、课程亮点

1、动态数据抓包演示
2、json数据解析方法
3、视频数据保存

三、所用到得库

import requests  # 第三方模块
import pprint

 

四、环境配置

python 3.6
pycharm(专门为python打造的一款编辑器) 环境搭建 专业版收费
requests

五、爬虫案例一般步骤(思路):

1.找数据所在的url地址(分析网页页面<静态/动态(抓包)>)
2.发送网络请求(requests)
3.数据的解析(我们要的数据)
4.数据保存(本地数据库)

六、找寻数据地址:

按照常规操作就是:
1、打开开发者工具,选择 network
2、点击刷新网页、查看返回数据
在这里插入图片描述
但是这个网站和平常的静态网页有所不同,按照正常的网站它是有翻页的,而这个网站是下滑网页,才会出现新的视频数据。

所以按照步骤应该是:

1、打开开发者工具,选择清空所有数据内容

2、下滑网页内容
如果需要一个一个去找的话,是非常的麻烦且浪费时间,可以选择复制一个视频的名字或者发布视频用户的名字,在开发者工具当中进行搜索。
在这里插入图片描述

七、发送网络请求找寻数据所在的url地址(分析网页页面<静态/动态(抓包):

# 1.找数据所在的url地址(分析网页页面<静态/动态(抓包)>)
url = "https://api-tinyvideo-web.yy.com/home/tinyvideosv2?"
headers = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36"}
params = {"data": "{"uid":0,"page":1,"pageSize":10}"}

# 2.发送网络请求(requests)
response = requests.get(url=url, params=params, headers=headers)
json_data = response.json()
# pprint.pprint(json_data)

# 3.数据的解析(我们要的数据)
data_list = json_data["data"]["data"]
for data in data_list:
    username = data["username"] + ".mp4" # 直播名字   flv avi rmvb
    resurl = data["resurl"]  # 视频地址
    # print(username, resurl)

    # 请求视频数据
    video_data = requests.get(url=resurl, headers=headers).content  # 请求到的视频数据

 

注意点:

我传的param的参数和链接有一些不一样,我只传入了data,因为如果是所有的参数都传入的话,那么返回的结果是字符串形式,这样还会多一些步骤

1、正则匹配只提取里面的json格式数据;

2、字符串转json。

在这里插入图片描述

八、进行数据保存:

# 4.数据保存(本地数据库)
with open("video" + username, mode="wb") as f:
    f.write(video_data)
    print("保存完成:", username)