当前位置:
首页 > temp > python入门教程 >
-
没想到上面好看的跳舞小姐姐蛮多的,【Python爬虫】采集微博视频数据
前言
随时随地发现新鲜事!微博带你欣赏世界上每一个精彩瞬间,了解每一个幕后故事。分享你想表达的,让全世界都能听到你的心声!今天我们通过python去采集微博当中好看的视频!
没错,今天的目标是微博数据采集,爬的是那些好看的小姐姐视频
知识点
- requests
- pprint
开发环境
-
版 本:python 3.8
-编辑器:pycharm 2021.2
爬虫原理
- 作用:批量获取互联网数据(文本, 图片, 音频, 视频)
-
本质:一次次的请求与响应
案例实现
1. 导入所需模块
import requests import pprint
2. 找到目标网址
打开开发者工具,选中Fetch/XHR,选中数据所在的标签,找到目标所在url
https://www.weibo.com/tv/api/component?page=/tv/channel/4379160563414111/editor
3. 发送网络请求
headers = { 'cookie': '', 'referer': 'https://weibo.com/tv/channel/4379160563414111/editor', 'user-agent': '', } data = { 'data': '{"Component_Channel_Editor":{"cid":"4379160563414111","count":9}}' } url = 'https://www.weibo.com/tv/api/component?page=/tv/channel/4379160563414111/editor' json_data = requests.post(url=url, headers=headers, data=data).json()
4. 获取数据
json_data_2 = requests.post(url=url_1, headers=headers, data=data_1).json()
5. 筛选数据
dict_urls = json_data_2['data']['Component_Play_Playinfo']['urls'] video_url = "https:" + dict_urls[list(dict_urls.keys())[0]] print(title + "\t" + video_url)
6. 保存数据
video_data = requests.get(video_url).content with open(f'video\\{title}.mp4', mode='wb') as f: f.write(video_data) print(title, "爬取成功................")
完整代码
import requests import pprint headers = { 'cookie': '添加自己的', 'referer': 'https://weibo.com/tv/channel/4379160563414111/editor', 'user-agent': '', } data = { 'data': '{"Component_Channel_Editor":{"cid":"4379160563414111","count":9}}' } url = 'https://www.weibo.com/tv/api/component?page=/tv/channel/4379160563414111/editor' json_data = requests.post(url=url, headers=headers, data=data).json() print(json_data) ccs_list = json_data['data']['Component_Channel_Editor']['list'] next_cursor = json_data['data']['Component_Channel_Editor']['next_cursor'] for ccs in ccs_list: oid = ccs['oid'] title = ccs['title'] data_1 = { 'data': '{"Component_Play_Playinfo":{"oid":"' + oid + '"}}' } url_1 = 'https://weibo.com/tv/api/component?page=/tv/show/' + oid json_data_2 = requests.post(url=url_1, headers=headers, data=data_1).json() dict_urls = json_data_2['data']['Component_Play_Playinfo']['urls'] video_url = "https:" + dict_urls[list(dict_urls.keys())[0]] print(title + "\t" + video_url) video_data = requests.get(video_url).content with open(f'video\\{title}.mp4', mode='wb') as f: f.write(video_data) print(title, "爬取成功................")
原文:https://www.cnblogs.com/qshhl/p/15637804.html
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数