精华内容
下载资源
问答
  • python爬虫b站弹幕
    千次阅读 多人点赞
    2021-01-24 11:33:37

    只用改网站就可以。
    非常方便。

    # -*- codeing = utf-8 -*-
    # @Time : 2021/1/23 18:40
    # @Author : 老七疯狂吸氧
    # @file bilibili.py
    # @Software:PyCharm
    
    import re
    import requests
    def main():
    
        url = "https://www.bilibili.com/video/BV1kh411y78a"    #此处个更换网址,只适用与哔哩哔哩的视频
    
        datalist = get_html(url)
        cid = saveurl(datalist)
        dmurl='https://comment.bilibili.com/'+cid+'.xml'
        datalist = get_Html(dmurl)
        list=datalist.content.decode("utf-8")
        savelist(list)
    def get_html(url):         #一次请求
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'
        }         #请输入你个人的User-Agent
        response = requests.get(url, headers=headers)
        return response.text
    def get_Html(url):        #二次请求
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36'
        }         #请输入你个人的User-Agent
        response = requests.get(url, headers=headers)
        return response
    def saveurl(baseurl):     #获取cid
        findlink=re.compile(r'"cid":(.*?),"bvid":')
        cid = re.findall(findlink,baseurl)
        cid = list(cid)[1]
        return cid
    def savelist(list):
        danmu = re.compile(r'<d p=".*?">(.*?)</d>')
        File = open("B站弹幕.txt", "w", encoding="utf-8")
        data = re.findall(danmu,list)
        for i in data:
            File.writelines(i)
            File.writelines("\n")
        File.close()
    if __name__ =="__main__":
        main()
        print("爬取完毕")
    
    更多相关内容
  • 主要介绍了Python爬虫爬取Bilibili弹幕过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 运行程序,输入Bvid和爬取日期;程序运行完成后会在当前文件夹下生成一个csv格式文件。
  • Python爬虫腾讯视频弹幕(目前可用)
  • python爬虫b站三国演义全集弹幕
  • 1.获取弹幕的url是以 .xml 结尾 2.弹幕url的所需参数在视频url响应的 javascript 中 先看代码 import requests from lxml import etree import re # 使用手机UA headers = { "User-Agent": "Mozilla/5.0 (iPhone; ...
  •  今天我们的爬虫内容是bilibili视频弹幕爬取,并保存到本地为JSON格式,正常爬虫只需要发送请求,解析相应内容,而爬取bilibili的内容,视频弹幕并没在响应的html中,而是保存在一个响应的url中,以XML格式保存,...
  • Bilibili弹幕爬取 分析与弹幕相关的内容 BilibiliSpider源码 run.py 结果截图 QQ音乐热评爬取 QQ音乐热评爬取源码 run.py settting.py 结果截图: 结语: 前言 爬虫的方法很多比如用requests,beautifulsoup,scrapy这些...
  • python爬取B站弹幕

    2021-09-05 19:14:31
    文章目录 1.所需库 2.cid的获取 3.源代码 1.所需库 requests:用于发送http请求 BeautifulSoup:用于解析html文档,便于之后的到导航和查找 pandas:用于对数据的处理,创建数据电子表格 2.cid的获取: ...

    文章目录


    1.所需库
    2.cid的获取
    3.源代码

    1.所需库

    1. requests:用于发送http请求
    2. BeautifulSoup:用于解析html文档,便于之后的到导航和查找
    3. pandas:用于对数据的处理,创建数据电子表格
      2.cid的获取:
      点击F12在右端获取在这里插入图片描述

    3.源代码如下:

    import numpy as np
    from PIL import Image
    from bs4 import BeautifulSoup
    url="http://comment.bilibili.com/cid.xml"
    req = requests.get(url)
    html=req.content
    html_doc = str(html,"utf-8")
    #解析
    soup = BeautifulSoup(html_doc,'html.parser')
    results = soup.find_all('d')
    #x.text表示要放到contents中的值
    contents = [x.text for x in results]
    #保存结果
    dic ={"contents" : contents}
    #用字典创建了一个电子表格
    df = pd.DataFrame(dic)
    #把内容写到bili.csv中
    df["contents"].to_csv("hetongxue.csv",encoding="utf-8",index=False)
    
    展开全文
  • 这篇文章主要介绍了Python爬虫爬取Bilibili弹幕过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 先来思考一个问题,B站一个视频的弹幕最多会有多少? ...
  • Python爬虫入门教程01:豆瓣Top电影爬取 Python爬虫入门教程02:小说爬取 Python爬虫入门教程03:二手房数据爬取 Python爬虫入门教程04:招聘信息爬取 PS:如有需要 Python学习资料 以及 解答 的小伙伴可以加点击...

    前言💨

    本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

    前文内容💨

    Python爬虫入门教程01:豆瓣Top电影爬取

    Python爬虫入门教程02:小说爬取

    Python爬虫入门教程03:二手房数据爬取

    Python爬虫入门教程04:招聘信息爬取

    PS:如有需要 Python学习资料 以及 解答 的小伙伴可以加点击下方链接自行获取
    python免费学习资料以及群交流解答点击即可加入

    基本开发环境💨

    • Python 3.6
    • Pycharm

    相关模块的使用💨

    • requests
    • re

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

    一、💥明确需求

    找一个弹幕比较多的视频爬取
    在这里插入图片描述
    在这里插入图片描述

    二、💥网页数据分析

    以前的B站弹幕视频,点击查看历史的弹幕,会给你返回一个json数据,包含了所有的弹幕内容。
    现在点击历史弹幕数据,同样是有数据加载出来,但是里面的都是乱码了。
    在这里插入图片描述
    在这里插入图片描述
    请求这个链接还是会得到想要的数据内容。
    在这里插入图片描述
    只需要使用正则表达匹配中文字符就可以匹配出来

    三、💥解析数据并多页爬取

    弹幕分页是根据日期来的,当点击 2021-01-01 的使用,返回的给我的数据并不是弹幕数据,而是所有的日期。
    在这里插入图片描述
    那么看到这里有人就会问了,那我想要爬取 2021-01-01 的弹幕数据怎么办?
    在这里插入图片描述
    这两个的url地址是不一样的,seg.so 才是弹幕数据url地址。

    import requests
    import re
    
    
    def get_response(html_url):
        headers = {
            'cookie': '你自己的cookie',
            'origin': 'https://www.bilibili.com',
            'referer': 'https://www.bilibili.com/video/BV19E41197Kc',
            '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=html_url, headers=headers)
        return response
    
    
    def get_date(html_url):
        response = get_response(html_url)
        json_data = response.json()
        date = json_data['data']
        print(date)
        return date
        
    if __name__ == '__main__':
        one_url = 'https://api.bilibili.com/x/v2/dm/history/index?type=1&oid=120004475&month=2021-01'
        get_date(one_url)
    

    返回的数据是json数据,根据字典键值对取值就可以得到相关数据。
    在这里插入图片描述

    四、💥保存数据(数据持久化)

    def main(html_url):
        data = get_date(html_url)
        for date in data:
            url = f'https://api.bilibili.com/x/v2/dm/web/history/seg.so?type=1&oid=120004475&date={date}'
            html_data = get_response(url).text
            result = re.findall(".*?([\u4E00-\u9FA5]+).*?", html_data)
            for i in result:
                with open('B站弹幕.txt', mode='a', encoding='utf-8') as f:
                    f.write(i)
                    f.write('\n')
    

    在这里插入图片描述

    五、💥完整代码

    import requests
    import re
    
    
    def get_response(html_url):
        headers = {
            'cookie': '你自己的cookie',
            'origin': 'https://www.bilibili.com',
            'referer': 'https://www.bilibili.com/video/BV19E41197Kc',
            '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=html_url, headers=headers)
        return response
    
    
    def get_date(html_url):
        response = get_response(html_url)
        json_data = response.json()
        date = json_data['data']
        print(date)
        return date
    
    
    def save(content):
        for i in content:
            with open('B站弹幕.txt', mode='a', encoding='utf-8') as f:
                f.write(i)
                f.write('\n')
                print(i)
    
    
    def main(html_url):
        data = get_date(html_url)
        for date in data:
            url = f'https://api.bilibili.com/x/v2/dm/web/history/seg.so?type=1&oid=120004475&date={date}'
            html_data = get_response(url).text
            result = re.findall(".*?([\u4E00-\u9FA5]+).*?", html_data)
            save(result)
    
    
    if __name__ == '__main__':
        one_url = 'https://api.bilibili.com/x/v2/dm/history/index?type=1&oid=120004475&month=2021-01'
        main(one_url)
    

    💥总结

    1、需要登陆才能查看历史弹幕,爬取时需要携带cookie
    2、可以保存到Excel里面,本文是保存txt文本
    3、保存数据之后可以做词云分析下篇文章再说吧
    展开全文
  • 系列文章目录 提示:写完文章后,目录可以自动...作为弹幕文化的大本营,必须是B站B站的大部分有趣都来自于弹幕。 目录 与前两个爬虫实践如出一辙,都是一个主函数作为程序入口,并调用子函数。其它几个def定义的

    系列文章目录

    python爬虫实践–晋江小说书籍分析
    python爬虫实践-腾讯视频弹幕分析
    python爬虫实践-B站弹幕分析



    前言

    在前两次的晋江小说和腾讯弹幕爬取基础上,我逐渐觉得自己掌握了这门技术的奥义?于是迫不及待地又对准了我的下一个目标——B站。
    为什么是B站?作为弹幕文化的大本营,必须是B站,B站的大部分有趣都来自于弹幕。

    目录

    在这里插入图片描述
    与前两个爬虫实践如出一辙,都是一个主函数作为程序入口,并调用子函数。其它几个def定义的子函数分别来处理不同阶段的数据。

    该程序用到的头文件

    import requests
    from bs4 import BeautifulSoup
    from docx import Document
    

    主程序模块

    if __name__=="__main__":
        main()
    

    单纯地给程序一个入口,就像起跑线。

    main()函数

    def main():
        url = 'https://comment.bilibili.com/251139222.xml'
        savename = 'B站弹幕1.docx'
        title = '风犬少年的天空第二集'
        link = 'https://www.bilibili.com/bangumi/play/ep340251?from=search&seid=11822154625123447233'
        # 1.访问弹幕数据
        html = accessbarrage(url)
    
        # 2.对弹幕数据进行解析
        comments = analysibarrage(html)
    
        # 3.保存到doc文件
        savebarrage(comments, title, link, savename)
    

    main()函数用来总揽全局,它相当于这群子函数的老大,决定谁先干什么,谁后干什么,并且实现数据的传递,即把前一个函数处理完的数据递交给下一个函数做参数。

    1.访问弹幕数据

    def accessbarrage(url):
        html = requests.get(url).content
        return html
    

    2.对弹幕数据进行解析

    def analysibarrage(html):
        html_data = str(html, 'utf-8')
        bs4 = BeautifulSoup(html_data, 'lxml')
        results = bs4.find_all('d')
        comments = {comment.text for comment in results}
        comments = list(comments)
        comments = sorted(comments)
        return comments
        # comments_dict = {'comments': comments}
    

    熟练运用bs里的各种子函数,可以快速准确地找到需要的数据。

    3.保存到doc文件

    def savebarrage(comments,title,link,savename):
        document = Document(savename)
        #添加段落,文本可以包含制表符(\t)、换行符(\n)或回车符(\r)等
        #添加标题,并设置级别,范围:0 至 9,默认为1
        document.add_heading(title, 0)
        document.add_heading(link, 1)
        for item in comments:
            document.add_paragraph(item)
        #保存.docx文档
        document.save(savename)
    

    总结

    实际上,做多了就发现,这种爬虫程序主要就三步。
    1.先把整个网页提取出来
    2. 再在提取出来的网页里筛选需要的数据(bs中的一些函数可以提供方便)
    3. 存到自己的文档中,方便查看分析。

    展开全文
  • python爬取B站视频中的弹幕并图形化展示 新手上路,参考:https://blog.csdn.net/csdnnews/article/details/106754771案例 需要了解爬取的地址: 1:视频地址:https://www.bilibili.com/video/BV1PK4y1b7dt?t=1 2....
  • python爬虫热点项目(Flask ) asyncore 模块 介绍 这个模块为异步socket的服务器客户端通信提供简单的接口。该模块提供了异步socket服务客户端和服务器的基础架构。相比python原生的socket?api,asyncore具备有很大...
  • B站弹幕抓取2021.zip

    2021-09-28 00:00:26
    抓取B站弹幕数据。 弹幕dmid,唯一 可用于操作参数 视频内弹幕出现时间,毫秒 弹幕类型,1 2 3:普通弹幕 4:底部弹幕 5:顶部弹幕 6:逆向弹幕 7:高级弹幕 8:代码弹幕 9:BAS弹幕(仅限于特殊弹幕专包) 弹幕字号...
  • 成果展示 项目地址爬取弹幕可以看我之前写的这篇文章:10行代码下载B站弹幕下载代码# download.py'''依赖模块pip install requests'''import reimport requestsurl = input('请输入B站视频链接: ')res = requests....
  • Python爬虫 视频弹幕提取过程,通过示例代码介绍的非常详细,需要的朋友可以参考下
  • 以前b站弹幕接口是这个: https://api.bilibili.com/x/v1/dm/list.so 返回的是 XML 格式的信息,非常容易解析。 但是,不知道什么时候开始,b站弹幕接口进行了更新,这个接口现在也被废弃了,改成了下面这个: ...
  • python源码集锦-爬取bilibili弹幕消息
  • 视频来源:https://www.bilibili.com/video/BV12E411A7ZQ?spm_id_from=333.1007.top_right_bar_window_default_collection.content.click
  • 免费资源网,https://freexyz.cn/最近央视新闻记者王冰冰以清除可爱和...本文以王冰冰视频弹幕为例,向大家介绍Python爬虫实现自动化爬取b站实时弹幕的过程。1、导入需要的库import jieba # 分词from wordcloud impo...
  • python按日期爬取b站弹幕 2.0版

    千次阅读 2021-01-07 14:36:54
    [分析爬取b站视频弹幕](https://blog.csdn.net/HandsomeFishman/article/details/112171386) 代码 直接附上完整代码: import requests from lxml import etree import pandas as pd from wordcloud import ...
  • 本案例视频BV号为:BV1MZ4y137oQ.python爬虫爬取B站视频评论内容(包含用户名,点赞数,评论时间等),爬取视频弹幕并制作词云。 。 一、爬虫具体效果 弹幕信息 爬取视频下用户的姓名,性别,获赞数,评论内容,和...
  • python爬取b站弹幕并进行数据可视化

    千次阅读 多人点赞 2019-11-22 19:19:21
    python爬取b站弹幕并进行数据可视化 1.第一步,爬取b站弹幕 我们随便打开一个b站视频 打开开发者模式,在network下搜索list,可以找到该视频的弹幕文件 打开之后是这个样子的 结构还是比较简单的,我们后续爬取...
  • 利用Python实现抓取芒果TV弹幕,废话不多说。 让我们愉快地开始吧~ 开发工具 Python版本: 3.6.4 相关模块: requests模块; pandas模块 以及一些Python自带的模块。 环境搭建 安装Python并添加到环境变量,pip安装...
  • import pandas as pd ...url = input('请输入B站视频链接: ') res = requests.get(url) cid = re.findall(r'"cid":(.*?),', res.text)[0] #其中cid是弹幕对应的id url = f'https://comment.bilibili.c

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,236
精华内容 894
关键字:

python爬虫b站弹幕