python爬虫实践-B站弹幕分析

news/2024/7/19 11:04:17 标签: python, 爬虫

系列文章目录

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


文章目录

    • 系列文章目录
    • 前言
    • 目录
    • 主程序模块
    • main()函数
    • 1.访问弹幕数据
    • 2.对弹幕数据进行解析
    • 3.保存到doc文件
    • 总结


前言

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

目录

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

该程序用到的头文件

python">import requests
from bs4 import BeautifulSoup
from docx import Document

主程序模块

python">if __name__=="__main__":
    main()

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

main()函数

python">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.访问弹幕数据

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

2.对弹幕数据进行解析

python">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文件

python">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. 存到自己的文档中,方便查看分析。


http://www.niftyadmin.cn/n/1803574.html

相关文章

DSAPI显示PNG异形窗体

使用DSAPI实现PNG异形窗体,注意,该窗体为层样式窗体,以PNG或32位带透明通道的图像合成到屏幕,此方法不会触发窗体的重绘,故原窗体(包括其子控件)均不会显示,如果需要更新画面&#x…

zabbix】问题 Time zone for PHP is not set (configuration parameterdate.timezone)

https://blog.csdn.net/jing875480512/article/details/79002404转载于:https://www.cnblogs.com/diyunpeng/p/10197708.html

前端Hack之XSS攻击个人学习笔记

简单概述 ** 此篇系本人两周来学习XSS的一份个人总结,实质上应该是一份笔记,方便自己日后重新回来复习,文中涉及到的文章我都会在末尾尽可能地添加上,此次总结是我在学习过程中所写,如有任何错误,敬…

TZOJ 4244 Sum(单调栈区间极差)

描述 Given a sequence, we define the seqences value equals the difference between the largest element and the smallest element in the sequence. As an example, the value of sequence (3, 1, 7, 2) 7-1 6. Now, given a sequence S, output the sum of all value …

web漏洞文件上传的三种安全级别入侵

1编写一句话木马 2对DVWA的low模式进行文件上传,直接上传shell文件,上传成功 3使用菜刀连接,连接成功 4 设置代理 5 进行DVWA的medium模式下文件上传,使用brupsuite抓包修改文件类型为image/jpeg 6 文件上传成功 7进行…

微信小程序开发学习(一)

一、各种JSON配置 1、小程序配置app.json 为小程序全局配置,包括所有页面路径、界面表现、网络超时时间、底部tab等,类比APP开发中manifest配置。 2、工具配置project.config.json 一些个性化配置,暂时没遇到需要用到的地方。 3、页面配置pag…

钓鱼网站实现

检查网络可用性 运行中间人 伪造网关 钓鱼

Python实现百度贴吧自动顶贴机

开发这款小工具,我们需要做一些准备: url.txt:多个需要顶起的帖子地址。reply:多条随机回复的内容。selenium:浏览器自动化测试框架首先,我们先使用pip完成selenium的安装。 示例代码: pip inst…