采集B站up主视频信息

一、网页信息(示例网址:https://space.bilibili.com/3493110839511225/video)

二、查看响应数据

三、查看数据包内容

四、相关代码(代码内容未进行翻页爬取)

# @Time: 2024/1/19 16:42
# @Author: 马龙强
# @File: 采集B站up主信息.py
# @software: PyCharm
"""
网址:https://space.bilibili.com/3493110839511225/video
数据:标题、BV号、播放量、评论、弹幕。。。。
数据包:https://api.bilibili.com/x/space/wbi/arc/search
代码步骤:发送请求、获取数据、解析数据、保存数据

多页数据采集  -> 采集up所有视频信息数据
        分析链接变化规律
        url中:
            - pn    :页码
            - dm_img_list   :鼠标移动数据
            - w_rid     :MD5加密参数
            - wts       :时间戳
        发生变化

"""
import requests

import datetime     #导入时间模块
import csv
"""创建文件对象"""
f = open('视频信息.csv',mode='w',encoding='utf-8',newline='')

"""
:.*
,
"""
csv_writer = csv.DictWriter(f,fieldnames=[
    '标题',
    '播放量',
    '评论',
    '弹幕',
    '时长',
    'bv号',
    '日期',
    '上传时间',
    
])
csv_writer.writeheader()

#模拟浏览器
headers = {

    "Cookie": "buvid3=94A5BDE1-CDDC-12C9-0FD4-3305DE8DCE8D76087infoc; b_nut=1699609476; i-wanna-go-back=-1; b_ut=7; _uuid=39D4B639-9B3B-D881-3D23-3998B94CC4C677381infoc; enable_web_push=DISABLE; buvid4=EFEE2640-75A3-B07D-5AFC-09D951D5581877370-023111017-YCb7ryWqJw+YFnyAAbCP2w%3D%3D; home_feed_column=5; browser_resolution=1536-746; buvid_fp=25ba4d2dc2d9aa5a126e6089b07107f2; CURRENT_FNVAL=4048; rpdid=|(J~umJRk|Yl0J'uYmmY|mR)); header_theme_version=CLOSE; sid=4hrgjlgl; PVID=1; b_lsid=45510CAB2_18D20E83DF5; bili_ticket=eyJhbGciOiJIUzI1NiIsImtpZCI6InMwMyIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MDU5MTMzMDcsImlhdCI6MTcwNTY1NDA0NywicGx0IjotMX0.IYXXtNtqUAEUWNSZrLv_iFUYwmYj-ml3PrjnDLtk_Q4; bili_ticket_expires=1705913247",
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0"
}
#请求网址
"""
请求网址较长进行分段写:
    问号前面:链接地址
    问号后面:查询参数(请求参数)
批量替换方法:
    (1)选择需要被替换的内容,ctrl+R
    (2)勾选 .*
    (3)使用正则替换命令
     (.*?):(.*)
     "$1":"$2",


"""

url = 'https://api.bilibili.com/x/space/wbi/arc/search?mid=3493110839511225&ps=30&tid=0&pn=1&keyword=&order=pubdate&platform=web&web_location=1550101&order_avoided=true&dm_img_list=[%7B%22x%22:1761,%22y%22:324,%22z%22:0,%22timestamp%22:84,%22type%22:0%7D,%7B%22x%22:1609,%22y%22:444,%22z%22:44,%22timestamp%22:197,%22type%22:0%7D,%7B%22x%22:1635,%22y%22:483,%22z%22:100,%22timestamp%22:341,%22type%22:0%7D,%7B%22x%22:1678,%22y%22:618,%22z%22:74,%22timestamp%22:445,%22type%22:0%7D]&dm_img_str=V2ViR0wgMS4wIChPcGVuR0wgRVMgMi4wIENocm9taXVtKQ&dm_cover_img_str=QU5HTEUgKEludGVsLCBJbnRlbChSKSBVSEQgR3JhcGhpY3MgRGlyZWN0M0QxMSB2c181XzAgcHNfNV8wLCBEM0QxMSlHb29nbGUgSW5jLiAoSW50ZW&w_rid=c7ac0e5f775a43c5784ae18cdb074efb&wts=1705737812'

#发送请求
response = requests.get(url=url,headers=headers)
"""获取数据:获取服务器返回响应数据
- response.text     文本
- response.json()       json
- response.content      获取相应二进制数据
保存数据:图片、音频、视频、特定格式文件

"""
#解析数据

# print(response.text)        #字符串
# print(response.json())      #字典
"""
键值对取值:根据冒号左边的内容[键],提取冒号右边的内容[值]
dit = {'A':'a','B':{'B1':'b'},'C':{'C1':[{'C2':'c2'}]}}
提取b -> dit['B']['B1']
提取c2 -> dit[][]
"""

json_data = response.json()
info_list = json_data['data']['list']['vlist']
#for循环遍历
for index in info_list:
    #上传时间戳
    # data_time = index['created']
    data_time = str(datetime.datetime.fromtimestamp(index['created']))
    date = data_time.split(' ')[0]  #日期
    up_time = data_time.split(' ')[1]    #上传时间

    """提取具体数据内容"""
    dit = {
        '标题':index['title'],
        '播放量':index['play'],
        '评论':index['comment'],
        '弹幕':index['video_review'],
        '时长':index['length'],
        'bv号':index['bvid'],
        '日期':date,
        '上传时间':up_time
    }
    #写入数据
    csv_writer.writerow(dit)
    print(dit)

五、爬取内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/337852.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】第三十二站:命名管道

文章目录 一、命名管道介绍二、编码1.mkfifo2.unlink3.一个简单的例子4.修改 一、命名管道介绍 管道应用的一个限制就是只能在具有共同祖先(具有亲缘关系)的进程间通信。 如果我们想在不相关的进程之间交换数据,可以使用FIFO文件来做这项工作…

<软考高项备考>《论文专题 - 78 风险管理(10)》

10 论文-历年真题解析 10.1 2005年上半年真题 请围绕“项目的风险管理”论题,分别从以下三个方面进行论述: 1.概要叙述你参与管理过的信息系统项目(项目的背景、发起单位、目的、项目周期、交付的产品等)&#xff0c…

【排序算法】五、冒泡排序(C/C++)

「前言」文章内容是排序算法之冒泡排序的讲解。(所有文章已经分类好,放心食用) 「归属专栏」排序算法 「主页链接」个人主页 「笔者」枫叶先生(fy) 目录 冒泡排序1.1 原理1.2 代码实现(C/C)1.3 特性总结 冒泡排序 1.1…

每日一题——1295.统计位数为偶数的数字

方法一 个人方法: 想知道整数型数字有多少位,可以直接把数字转字符,看字符的长度就是数字的位数 var findNumbers function(nums) {let count0for(let num of nums){let strnumif(str.length%20) count}return count }; 消耗时间和内存情况…

uni-app使用HBuilderX打包Web项目

非常简单,就是容易忘记 一、找到manifest.json配置Web配置 二、源码视图配置 "h5" : {"template" : "","domain" : "xxx.xx.xx.xxx","publicPath" : "./","devServer" : {&quo…

【Java程序员面试专栏 专业技能篇】MySQL核心面试指引(一):基础知识考察

关于MySQL部分的核心知识进行一网打尽,包括三部分:基础知识考察、核心机制策略、性能优化策略,通过一篇文章串联面试重点,并且帮助加强日常基础知识的理解,全局思维导图如下所示 本篇Blog为第一部分:基础知识考察,子节点表示追问或同级提问 基本概念 包括一些核心问…

什么是葡萄酒“质量三级标准”?

在葡萄酒的世界里有一个笼统的级别分为:入门、精品和顶级。那么,对应这三个级别的标准都是什么呢? 入门级别的标准:入门级别的酒首先喝起来新鲜且顺口。新鲜很容易理解,就是没有腐熟水果的味道,也就是“罐…

8.3最大自序和(LC53-M)

算法: 如果 -2 1 在一起,计算起点的时候,一定是从 1 开始计算,因为负数只会拉低总和,这就是贪心贪的地方! (-21,起点为负数,加上后面的数,只会让和变小&…

《WebKit 技术内幕》之六(3): CSS解释器和样式布局

3 WebKit布局 3.1 基础 当WebKit创建RenderObject对象之后,每个对象是不知道自己的位置、大小等信息的,WebKit根据框模型来计算它们的位置、大小等信息的过程称为布局计算(或者称为排版)。 图描述了这一过程中涉及的主要WebKit…

浅谈 ret2text

文章目录 ret2text无需传参重构传参函数调用约定x86x64 ret2text ret2text就是执行程序中已有的代码,例如程序中写有system等系统的调用函数 无需传参 如果程序的后门函数参数已经满足 getshell 的需求,那么就可以直接溢出覆盖 ret 地址不用考虑传参问…

SystemC学习笔记(三) - 查看模块的波形

简述 波形在Simulation/Emulation中地位十分重要,尤其是在研发初期,只能通过波形来查看软件hang住的位置。 对于TLM来说,查看波形一般是指查看pvbus上的transaction,而对于SystemC本身来说,查看波形就是使用Gtkwave或…

WeChall

WeChall-Scored Challenges 一、Get Sourced二、Stegano I三、Crypto - Caesar I四、WWW-Robots五、 ASCII六、URL七、Christmas Hippety八、No DNS 网站链接:https://www.wechall.net/challs/Training/by/chall_score/ASC/page-1 一、Get Sourced 题目链接&#…

HTML+JavaScript-01

说明 之前有一篇JavaWeb-JavaScript中只是简单介绍了一点JavaScript的内容,这篇笔记算是续写的,但是从01开始编号。 引入js文件 html、css、js俗称前端三剑客,一般都是分开写,先写框架、再写css、最后写js。因此在工程量大的情…

HarmonyOS—配置开发环境

应用/服务支持API Version 4至9,首次使用DevEco Studio,工具的配置向导会引导您下载SDK及工具链。配置向导默认下载 API Version 9的SDK及工具链,如需下载API Version 4至8,可在工程配置完成后,进入HarmonyOS SDK界面手…

福建专业建筑清水模板 — 安全可靠的选择

在福建地区的建筑工程中,选择高质量的清水模板对于确保结构的美观和工程的安全至关重要。我们能强优品木业提供的专业建筑清水模板,以其卓越的质量和安全性,成为施工团队的首选。 产品特性 优质材料制作:选用高品质木材制作&…

机械设计-哈工大课程学习-螺纹连接

圆柱螺纹主要几何参数螺纹参数 ①外径(大径),与外螺纹牙顶或内螺纹牙底相重合的假想圆柱体直径。螺纹的公称直径即大径。 ②内径(小径),与外螺纹牙底或内螺纹牙顶相重合的假想圆柱体直径。 ③中径&#xff…

React 初次接触

背景 还是为了完善高大上的在线文档系统,虽然比着葫芦画瓢的修改了一些所谓的代码,慢慢的才发现,原来这就是传说中的React,所以有比较又要囫囵吞枣一下React。 基本原理 参照《React技术揭秘》 网上有电子版 ,应该是…

selenium-java中切换iframe

1、当iframe中有固定的name或者id时可以通过name和id进行切换,代码如下 driver.switchTo().frame("name"); 2、当iframe中没有固定的name或者id时可以通过iframe角标进行切换,在浏览器通过ctrlf快捷键,搜索标签框输入//iframe;来查看当前ifr…

11、Kafka ------ Kafka 核心API 及 生产者API 讲解

目录 Kafka核心API 及 生产者API讲解★ Kafka的核心APIKafka包含如下5类核心API: ★ 生产者APIKafka 的API 文档 ★ 使用生产者API发送消息 Kafka核心API 及 生产者API讲解 官方文档 ★ Kafka的核心API Kafka包含如下5类核心API: Producer API&#x…

一维数组2和二维数组1

1.一维数组在内存中的储存 在前面创建的数组中,每个元素是怎么储存的呢?我们通过观察元素的地址来看看吧。 %p是用来打印地址的。 结果为: 由此可看出每个地址都相隔一个int类型的距离,可以看出数组在内存中是连续存放的。也就是…