首页 > 编程语言 >简单的用Python获取一下视频弹幕,新手练手实战项目,非常简单!

简单的用Python获取一下视频弹幕,新手练手实战项目,非常简单!

时间:2023-08-05 16:11:29浏览次数:43  
标签:练手 Python 数据 content -- 模块 import 弹幕

昨天看到个视频,弹幕挺有意思的,于是想着用Python给他全部扒下来。

代码非常简单,接下来我们看看 具体操作。

需要准备这些

软件

  • Python 3.8
  • Pycharm

模块使用

  • import requests 数据请求
  • import jieba 分词
  • import wordcloud 词云
  • import parsel 数据解析
  • import re 正则

win + R 输入cmd 输入安装命令 pip install 模块名 (如果你觉得安装速度比较慢, 你可以切换国内镜像源)

本次目标

视频地址: https://www.bilibili.com/video/BV1Nz4y1x7tA/
弹幕内容: https://www.ibilibili.com/video/BV1Nz4y1x7tA/
弹幕地址: https://api.bilibili.com/x/v1/dm/list.so?oid=1205968547

流程步骤

基本实现步骤: <公式>

  1. 发送请求 --> 数据所对应链接地址
    https://api.bilibili.com/x/v1/dm/list.so?oid=1205968547
  2. 获取数据 --> 获取整个页面数据内容
  3. 解析数据 --> 提取具体数据内容
  4. 保存数据 --> 保存本地文件

代码展示

模块导入# 数据请求模块 --> 第三方模块 需要安装 pip install requests

import requests   
# 导入正则表达式 --> 内置模块不需要安装
import re
# 导入数据解析模块 --> 第三方模块 需要安装 pip install parsel
# 视频讲解+代码我都打包好了,直接在这个q裙自取:708525271
import parsel

 

发送请求

# 请求链接
url = 'https://api.bilibili.com/x/v1/dm/list.so?oid=1205968547'
# 调用requests模块里面get请求方法对于url地址发送请求
response = requests.get(url)
print(response)

 

获取数据

获取文本响应数据

print(response.text)

 

当我们获取数据出现乱码怎么办呢?

response .encoding = 'utf-8'

 

数据解析

正则匹配数据

re_content = re.findall('<d p=".*?">(.*?)</d>',html_data)
content = re.findall('<source>(.*?)</source>', html_data)
print(re_content)
print(content)

 

转化数据

把获取到响应文本数据,转成可解析对象。

selector = parsel.Selector(html_data) # 选择器对象

# d 标签名字 d::text -提取d标签里的文本内容
css_content = selector.css('d::text').getall()

print(selector)

 

保存数据

for content in css_content:
    # mode 保存方式 --> w写入数据, 会覆盖 a 追加保存
    with open('弹幕_1.txt', mode='a', encoding='utf-8') as f:
        f.write(content)
        f.write('\n')
    print(content)

 

好了,今天的分享就到这里结束了,咱们下次见!

标签:练手,Python,数据,content,--,模块,import,弹幕
From: https://www.cnblogs.com/hahaa/p/17607975.html

相关文章

  • Python批量爬取B站法外狂徒张三所有视频【含jS逆向解密】
    传说中,有人因为只是远远的看了一眼法外狂徒张三就进去了......
  • 【python_6】基础语法:标识符和运算符!
    1.什么是标识符在python程序中,我们可以给很多东西起名字,比如:变量的名字方法的名字类的名字等等这些名字,我们把它统一的称之为标识符,用来做内容的标识。所以,标识符:是用户在编程的时候所使用的一系列名字,用于给变量,类,方法等命名。2.标识符的命名规则标识符命名的规则主要有三类内容限......
  • python100到练习题(一)
    编写一个程序,输入两个数并计算它们的和。num1=float(input("请输入第一个数:"))num2=float(input("请输入第二个数:"))sum=num1+num2print("两个数的和为:",sum)编写一个程序,输入一个字符串,并倒序输出该字符串。string=input("请输入一个字符串:")reverse_string=stri......
  • python: Text-to-Speech and Speech-to-Text
     """python.exe-mpipinstall--upgradepippipinstallpyttsx3pipinstallcomtypespipinstallPillowpipinstallrequestspipinstallPocketSphinxpipinstallSpeechRecognitionpython:3.11"""importsysimportos......
  • python 网站爬取数据 避免SSLError
    importrequestsfrombs4importBeautifulSoup#发送HTTP请求获取网页内容url="https://example.com/"response=requests.get(url,verify=False)#避免SSLErrorhtml_content=response.text#使用BeautifulSoup解析网页内容soup=BeautifulSoup(html_content,"h......
  • python中文字体和负号显示问题修正
    frompylabimportmpl#设置显示中文字体mpl.rcParams["font.sans-serif"]=["SimHei"]#不显示fu负号问题plt.rcParams['axes.unicode_minus']=False以下内容chatgpt提供通过将plt.rcParams['axes.unicode_minus']设置为False,我们可以告诉matplotlib使用其他字符集来显示负号,通......
  • ubuntu安装python 3.7
    要在Ubuntu上安装Python3.7,可以按照以下步骤进行:打开终端。运行以下命令更新包列表:Copysudoaptupdate安装构建Python所需的依赖库:Copysudoaptinstallbuild-essentialzlib1g-devlibncurses5-devlibgdbm-devlibnss3-devlibssl-devlibreadline-......
  • python实现Moaic数据增强
    数据增强python实现Moaic数据增强python实现Moaic数据增强Moaic数据增强:对四张图片进行拼接,获得一张新的图片,同时获得这张图片对应的标签框。主要原理:把4张图片,通过随机缩放、随机裁减、随机排布的方式......
  • Python通过解析html来实现简历系统
    把以上三个文件放到personData目录下即可。Admin.pyw#coding:utf-8fromPyQt4.QtGuiimport*fromPyQt4.QtCoreimport*importos,sys,time,jsonimportlxml.htmlreload(sys)sys.setdefaultencoding("utf-8")classmat(QDialog):def__init__(self):s......
  • 猿创征文|Python学习工具千千万,我心中的TOP10
    前言:大家好,我是是Dream呀,在我们平时的开发和生活中,每天都在使用、寻找、贡献、创作各类开发者工具,包括开源服务、付费软件、API等。好的工具可以极大帮助我们提升效率,服务业务。作为一名资深的Python博主,很多人都会问我平时使用什么工具,亦或者说有什么比较好的推荐工具呢?实话实......