千家信息网

Python怎么爬取yy全站小视频

发表于:2025-02-19 作者:千家信息网编辑
千家信息网最后更新 2025年02月19日,本篇内容介绍了"Python怎么爬取yy全站小视频"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!基本
千家信息网最后更新 2025年02月19日Python怎么爬取yy全站小视频

本篇内容介绍了"Python怎么爬取yy全站小视频"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

基本开发环境

  • Python 3.6

  • Pycharm

相关模块的使用

import osimport requests

安装Python并添加到环境变量,pip安装需要的相关模块即可。

一、确定目标需求


百度搜索YY,点击分类选择小视频,里面的小姐姐自拍的短视频就是我们所需要的数据了。


如图所示,所框选的url地址,就是短视频的播放地址了。


第三页的数据请求参数:


很明显这是根据data参数中的page改变翻页的。

构建翻页循环,获取视频url地址以及发布人的名字,保存到本地。

三、代码实现

1、请求数据接口

import requestsurl = 'https://api-tinyvideo-web.yy.com/home/tinyvideosv2'params = {    'callback': 'jQuery112409962628943012035_1613628479734',    'appId': 'svwebpc',    'sign': '',    'data': '{"uid":0,"page":0,"pageSize":10}',    '_': '1613628479737',}headers = {    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'}response = requests.get(url=url, params=params, headers=headers)

问题来了,返回的数据是json数据嘛?


如上图所示,很多人看到这样的数据肯定就觉得这不就是一个json数据嘛?


通过response查看就知道了,返回给我们的数据是多了一段 jQuery112409962628943012035_1613628479734()
其中的json数据是包含在里面的,如果想要提取数据有三种方法。

1、返回response.text,使用正则表达式提取url地址以及发布人的名字

video_url = re.findall('"resurl":"(.*?)"', response.text)user_name = re.findall('"username":"(.*?)"', response.text)


2、返回response.text,使用正则表达式提取 jQuery112409962628943012035_1613628479734() 中的数据,然后通过json模块把字符串转成json数据,然后遍历提取数据。

string = re.findall('jQuery112409962628943012035_1613628479734\((.*?)\)', response.text)[0]json_data = json.loads(string)result = json_data['data']['data']pprint.pprint(result)


3、把请求的url地址中的 callback 删掉,可以直接获取json数据

import pprintimport requestsurl = 'https://api-tinyvideo-web.yy.com/home/tinyvideosv2'params = {    'appId': 'svwebpc',    'sign': '',    'data': '{"uid":0,"page":1,"pageSize":10}',    '_': '1613628479737',}headers = {    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'}response = requests.get(url=url, params=params, headers=headers)json_data = response.json()result = json_data['data']['data']pprint.pprint(result)

2、保存数据

    for index in result:        video_url = index['resurl']        user_name = index['username']        video_content = requests.get(url=video_url, headers=headers).content        with open('video\\' + user_name + '.mp4', mode='wb') as f:            f.write(video_content)            print(user_name)

注意点: 用户名有特殊字符,保存的时候会报错


所以需要使用正则表达式替换掉特殊字符

def change_title(title):    pattern = re.compile(r"[\/\\\:\*\?\"\<\>\|]")  # '/ \ : * ? ">

完整实现代码

import reimport requestsimport redef change_title(title):    pattern = re.compile(r"[\/\\\:\*\?\"\<\>\|]")  # '/ \ : * ? " < > |'    new_title = re.sub(pattern, "_", title)  # 替换为下划线    return new_titlepage = 0while True:    page += 1    url = 'https://api-tinyvideo-web.yy.com/home/tinyvideosv2'    params = {        'appId': 'svwebpc',        'sign': '',        'data': '{"uid":0,"page":%s,"pageSize":10}' % str(page),        '_': '1613628479737',    }    headers = {        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'    }    response = requests.get(url=url, params=params, headers=headers)    json_data = response.json()    result = json_data['data']['data']    for index in result:        video_url = index['resurl']        user_name = index['username']        new_title = change_title(user_name)        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(user_name)

"Python怎么爬取yy全站小视频"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

数据 地址 字符 就是 模块 正则 表达式 视频 全站 特殊 代码 内容 参数 名字 更多 环境 知识 实用 明显 学有所成 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 山东巨幕服务器云空间 互联网科技公司怎么做账 gns3网络技术 淘宝卖家提示无法连接服务器 计算机网络技术对未来的规划 服务器文件存储过程 龙岗区软件开发培训学校 浦东新区机电软件开发收购价格 自动化网络安全学习收费吗 有哪些软件开发比赛 的来历服务器进u盘启动 在数据库中创建员工表视频 服务器时间基准是什么意思 vr是互联网科技 高配服务器带来流畅体验 如何撤销服务器主板原来的设置 access 数据库开发 远程网关服务器 广州网络安全公司电话 2020网络安全征集优秀奖 域控服务器 组策略管理 网络安全可以干一辈子吗 定制app软件开发企业浙江 全基因单核苷酸变异数据库 税务 网络安全 黑暗之魂3正版不连接服务器 为什么修改资料服务器拒绝请求 数据库应用技术约定符号 网络安全与数字签名技术开题报告 互联网融通科技产业创建
0