今天跟大家分享的是爬取YY网站短视频
本次爬取所有代码在本文结尾贴出
准备工作
首先,我们本次爬取的网站URL为https://www.yy.com/sv。
点击链接进入网站后,我们要开始分析网页啦😊
接下来就是“经验”环节啦(也就是把刷新页面后Network下出现的数据包一个一个点击去看看),在我“不懈努力”之下,我发现了视频存储的位置:
我们可以发现该数据包是以json文件格式返回的
注:Preview 可以看到数据包的具体内容
除了找到视频在哪个位置以外,我们还要为写代码做一下一些准备工作:
- 还是刚才那个文件,点击headers
找到视频的URL,该URL就是我们爬取的真正的网址,不过我们还要做下处理,毕竟这个URL没用的
参数过多,我们仅仅需要以下这段URL即可打开:
https://api-tinyvideo-web.yy.com/home/tinyvideos?data=%7B%22uid%22%3A0%2C%22page%22%3A1%2C%22pageSize%22%3A10%7D&_=1588860867580
- 获取用户代理和请求参数
- 我们爬取的是多页的视频,因此,我们要分析一下网站是如何加载下一页的
通过观察我们发现,该网站加载数据实现翻页操作仅仅是改变data里page的值即可
OK,以上就是我们的准备工作,接下来就是写代码环节
撸代码
写爬虫代码一般四步走:
1、分析目标网页 确定爬取的URL路径 设置headers、params参数
2、发送请求 获得响应数据
3、解析数据
4、保存数据
😂跟着四步走的思想,代码写起来轻轻松松:
import requests
import csv
import json
# import pprint
# 1分析目标网页 确定爬取的URL路径
page = 0
while True:
page += 1
print('=====================正在抓取第()页的数据=============='.format(page))
url = 'https://api-tinyvideo-web.yy.com/home/tinyvideos'
params = {
'data':'{"uid":0,"page":%s,"pageSize":10}'%str(page)
}
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36'
}
# 2发送请求 获得响应数据
response = requests.get(url, headers=headers, params=params)
#获取响应数据中的json数据
data = response.json()
# print(data)
# pprint.pprint(data)
# 3解析数据
# 提取字段
data_list = data['data']['data']
# print(data_list)
## 遍历列表
for data in data_list:
try:
resdesc = data['resdesc'] +'.mp4' #视频文件名
resurl = data['resurl'] #视频的URL
except Exception as e:
break
video_data = requests.get(url=resurl,headers=headers).content #提取二进制数据
# 4保存数据
# 在项目下的文件夹新建一个文件夹保存视频
with open('video\\' + resdesc,mode='wb') as f:
print('正在抓取视频',resdesc)
f.write(video_data)
我设置的是死循环,因此需要人为的停止,当然循环条件你可以设置一个合适的数满足你自己的要求即可
OK 以上就是本次全部内容 感谢阅读!!!