-
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弹幕过程解析
2020-09-18 14:21:55主要介绍了Python爬虫爬取Bilibili弹幕过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 -
python爬虫工具_B站弹幕爬取
2021-10-30 21:37:02运行程序,输入Bvid和爬取日期;程序运行完成后会在当前文件夹下生成一个csv格式文件。 -
Python爬虫腾讯视频弹幕(目前可用)
2021-06-22 14:33:45Python爬虫腾讯视频弹幕(目前可用) -
python爬虫b站三国演义全集弹幕
2022-06-12 20:38:40python爬虫b站三国演义全集弹幕 -
Python爬虫 bilibili视频弹幕提取过程详解
2020-12-26 02:33:061.获取弹幕的url是以 .xml 结尾 2.弹幕url的所需参数在视频url响应的 javascript 中 先看代码 import requests from lxml import etree import re # 使用手机UA headers = { "User-Agent": "Mozilla/5.0 (iPhone; ... -
Python爬虫之bilibili视频弹幕爬取并保存为JSON格式(详解+代码实现)
2020-12-22 13:29:48今天我们的爬虫内容是bilibili视频弹幕爬取,并保存到本地为JSON格式,正常爬虫只需要发送请求,解析相应内容,而爬取bilibili的内容,视频弹幕并没在响应的html中,而是保存在一个响应的url中,以XML格式保存,... -
python爬虫之biilibili弹幕爬取+qq音乐热评爬取
2020-12-21 22:09:51Bilibili弹幕爬取 分析与弹幕相关的内容 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.所需库
- requests:用于发送http请求
- BeautifulSoup:用于解析html文档,便于之后的到导航和查找
- 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弹幕过程解析
2020-12-22 09:39:24这篇文章主要介绍了Python爬虫爬取Bilibili弹幕过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 先来思考一个问题,B站一个视频的弹幕最多会有多少? ... -
Python爬虫入门教程05:B站视频弹幕的爬取
2021-01-25 16:55:08Python爬虫入门教程01:豆瓣Top电影爬取 Python爬虫入门教程02:小说爬取 Python爬虫入门教程03:二手房数据爬取 Python爬虫入门教程04:招聘信息爬取 PS:如有需要 Python学习资料 以及 解答 的小伙伴可以加点击...前言💨
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。
前文内容💨
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、保存数据之后可以做词云分析下篇文章再说吧
-
python爬虫实践-B站弹幕分析
2021-10-19 21:03:36系列文章目录 提示:写完文章后,目录可以自动...作为弹幕文化的大本营,必须是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站视频中的弹幕并图形化展示
2020-11-26 17:46:33python爬取B站视频中的弹幕并图形化展示 新手上路,参考:https://blog.csdn.net/csdnnews/article/details/106754771案例 需要了解爬取的地址: 1:视频地址:https://www.bilibili.com/video/BV1PK4y1b7dt?t=1 2.... -
python爬虫-斗鱼弹幕(asyncore仅供学习参考用)
2021-11-24 11:22:00python爬虫热点项目(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弹幕(仅限于特殊弹幕专包) 弹幕字号... -
【python】B站弹幕数据分析及可视化(爬虫+数据挖掘)
2021-01-12 06:56:13成果展示 项目地址爬取弹幕可以看我之前写的这篇文章:10行代码下载B站弹幕下载代码# download.py'''依赖模块pip install requests'''import reimport requestsurl = input('请输入B站视频链接: ')res = requests.... -
Python爬虫 视频弹幕提取过程
2022-06-12 19:58:39Python爬虫 视频弹幕提取过程,通过示例代码介绍的非常详细,需要的朋友可以参考下 -
【Python】b站弹幕系统改版后爬虫方法(bilibili_api)
2021-02-10 21:11:32以前b站弹幕接口是这个: https://api.bilibili.com/x/v1/dm/list.so 返回的是 XML 格式的信息,非常容易解析。 但是,不知道什么时候开始,b站弹幕接口进行了更新,这个接口现在也被废弃了,改成了下面这个: ... -
python源码集锦-爬取bilibili弹幕消息
2021-03-13 11:24:56python源码集锦-爬取bilibili弹幕消息 -
python爬虫+基于哔哩哔哩弹幕网上爬虫实训的学习笔记
2022-02-04 22:30:29视频来源:https://www.bilibili.com/video/BV12E411A7ZQ?spm_id_from=333.1007.top_right_bar_window_default_collection.content.click -
Python爬虫自动化爬取b站实时弹幕实例方法
2021-03-05 18:31:31免费资源网,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 ... -
Python爬虫(视频弹幕&评论爬取)
2021-09-01 22:17:09本案例视频BV号为:BV1MZ4y137oQ.python爬虫爬取B站视频评论内容(包含用户名,点赞数,评论时间等),爬取视频弹幕并制作词云。 。 一、爬虫具体效果 弹幕信息 爬取视频下用户的姓名,性别,获赞数,评论内容,和... -
python爬取b站弹幕并进行数据可视化
2019-11-22 19:19:21python爬取b站弹幕并进行数据可视化 1.第一步,爬取b站弹幕 我们随便打开一个b站视频 打开开发者模式,在network下搜索list,可以找到该视频的弹幕文件 打开之后是这个样子的 结构还是比较简单的,我们后续爬取... -
Python爬虫实战,requests模块,Python实现抓取芒果TV弹幕
2021-11-03 09:38:42利用Python实现抓取芒果TV弹幕,废话不多说。 让我们愉快地开始吧~ 开发工具 Python版本: 3.6.4 相关模块: requests模块; pandas模块 以及一些Python自带的模块。 环境搭建 安装Python并添加到环境变量,pip安装... -
爬虫B站任意视频 弹幕文字+时间
2021-09-23 20:44:25import 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