使用python进行blibli弹幕采集并存储于mongodb
ps: 庆余年真的好看哇!
附爬虫结果:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Mon Dec 16 14:06:34 2019@author: xinran
"""
'''
提交成果
blibli弹幕数据采集① 搜搜任意关键字,找到相关视频列表,选取3个视频② 选取3个视频进行采集,采集其弹幕数据 - 1个视频约1000条弹幕1、提交爬虫代码.py文件,可直接粘贴在答题框内2、数据从mongodb中导出本地CSV,提交.csv文件,可做成rar压缩包提交,也可截图放在答题框内'''import requests
from bs4 import BeautifulSoup
import pandas as pd
import pymongo
import redef get_urls(u,d_h,d_c):'''【视频页面url采集】函数u:起始网址d_h:user-agent信息d_c:cookies信息结果:得到一个视频页面的list'''lst = []ri = requests.get(url = u,headers = d_h, cookies = d_c)soupi = BeautifulSoup(ri.text, 'lxml')lis = soupi.find('ul',class_="video-list clearfix").find_all('li')lst = []for i in lis:lst.append('https:' + i.a['href'])return lstdef get_data(ui,d_h,d_c,table):'''【视频页面数据采集 / cid信息 / 弹幕xml数据采集】函数ui:数据信息网页d_h:user-agent信息d_c:cookies信息table:mongo集合对象'''  r1 = requests.get(url = ui,headers=d_h,cookies=d_c)  soup1 = BeautifulSoup(r1.text, 'lxml')# 访问视频网页,并解析name = soup1.h1['title']date = re.search(r'(20.*\d)',soup1.find('div',class_ = 'video-data').text).group(1)cid = re.search(r'"cid":(\d*),',r1.text).group(1)u2 = 'https://comment.bilibili.com/%s.xml' % cid# 采集视频基本信息及cidr2= requests.get(url = u2)r2.encoding = r2.apparent_encodingdmlst = re.findall('<d p=.*?</d>',r2.text)# 获取弹幕列表n = 0for dm in dmlst:dic = {}dic['标题'] = namedic['发布时间'] = datedic['cid'] = ciddic['弹幕'] = re.search(r'>(.*)</d',dm).group(1)dic['其他信息'] = re.search(r'<d p="(.*)"',dm).group(1)table.insert_one(dic)  # 数据入库n += 1print(name)return nif __name__ == "__main__":    h_dic = {"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"}cookies = "_uuid=67709119-CC36-17A0-C64E-6548D662F58C79803infoc; LIVE_BUVID=AUTO5515689466797879; buvid3=6EBE8156-87E7-4269-80F9-2BB7DEE27489155812infoc; sid=7tml356u; CURRENT_FNVAL=16; rpdid=|(k||RllY)mY0J'ulYmklull|; stardustvideo=1; im_notify_type_396546033=0; UM_distinctid=16e7d04c645149-085a718856c3fa-1d3a6a5a-13c680-16e7d04c64815c; DedeUserID=396546033; DedeUserID__ckMd5=2b1792ca71874b1a; SESSDATA=6901898a%2C1578068803%2Cd119f6c1; bili_jct=3b59df5616abe05039a3aea2dfae16fe; bp_t_offset_396546033=329117146258542626; finger=ebc2a6ef; laboratory=1-1; arrange=matrix; INTVER=1"c_dic = {}for i in cookies.split('; '):c_dic[i.split('=')[0]] = i.split('=')[1]u1 = 'https://search.bilibili.com/all?keyword=%E5%BA%86%E4%BD%99%E5%B9%B4'urllst = get_urls(u1,h_dic,c_dic)print(urllst)# 采集视频页面网址myclient = pymongo.MongoClient("mongodb://localhost:27017/")db = myclient['blibli']datatable = db['弹幕信息'] # 设置数据库集合 errorlst = []count = 0for u in urllst[:3]:try:count += get_data(u,h_dic,c_dic,datatable)print('数据采集成功,总共采集%i条数据' % count)except:errorlst.append(u)print('数据采集失败,数据网址为:',u)data_df = pd.DataFrame(list(db['弹幕信息'].find()))data_df.to_csv('/Users/xinran/01 网易云课堂/01 大鹏/考核/考核07/blibli.csv')

有疑问欢迎评论哈~

blibli弹幕采集(爬取庆余年弹幕)相关推荐

  1. python获取虎牙弹幕_python爬取虎牙弹幕礼物数据

    python爬取虎牙弹幕礼物数据 查看官方文档 找到弹幕传输的方式 生成websocket对应的参数 第一步: 第二步: 调通websocket 建立链接 获取数据和保持心跳 附上完整代码 注: 查看 ...

  2. python熊猫弹幕_Python爬取pandaTV弹幕

    主要思路 对PandaTV直播间抓包分析得出的结论有: (1)通过GET请求获取弹幕服务器地址: (2)和弹幕服务器建立WebSocket连接后的具体过程需要在主页面引用的JS文件中找(建立连接.发心 ...

  3. python 斗鱼弹幕的爬取一(selenium)

    针对弹幕的爬取我们如果只需要获取看到的网页里面的而数据,使用selenium就能实现,对于直播平台来说,往往有第三方平台api让你获取数据(可以获取发弹幕,发弹幕者的名字礼物等等,这需要客户端向弹幕服 ...

  4. 菜鸟弟弟从零开始的爬取Bilibili弹幕的Python爬虫教程-哔哩哔哩 - ( ゜- ゜)つロ 干杯~

    从零开始的爬取Bilibili弹幕的Python爬虫教程 或许可以作为一个爬虫小白的练手的demo? 还是先看看什么是爬虫吧!(还有Bilibili! ) 网络爬虫: 网络爬虫(又称为网页蜘蛛,网络机 ...

  5. python爬取bilibili弹幕_Python爬虫爬取Bilibili弹幕过程解析

    先来思考一个问题,B站一个视频的弹幕最多会有多少? 比较多的会有2000条吧,这么多数据,B站肯定是不会直接把弹幕和这个视频绑在一起的. 也就是说,有一个视频地址为https://www.bilibi ...

  6. python爬斗鱼直播_Python爬虫:利用API实时爬取斗鱼弹幕

    原标题:Python爬虫:利用API实时爬取斗鱼弹幕 这些天一直想做一个斗鱼爬取弹幕,但是一直考试时间不够,而且这个斗鱼的api接口虽然开放了但是我在github上没有找到可以完美实现连接.我看了好多 ...

  7. python爬取bilibili弹幕_Python抓取BiliBili拦河坝并生成单词云,爬取,bilibili,弹幕

    木秀于林,风亦惧之:虽为萤火,亦绽光芒. Python爬取bilibili弹幕并生成词云 目标网站: 哔哩哔哩: https://www.bilibili.com/ 我这里以 TES vs SN 第四 ...

  8. Python爬虫:爬取Bilibili弹幕过程示例代码

    这篇文章主要介绍了Python爬虫爬取Bilibili弹幕过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 先来思考一个问题,B站一个视频的弹 ...

  9. python爬取虎牙弹幕礼物数据

    python爬取虎牙弹幕礼物数据 查看官方文档 找到弹幕传输的方式 生成websocket对应的参数 第一步: 第二步: 调通websocket 建立链接 获取数据和保持心跳 附上完整代码 注: 查看 ...

最新文章

  1. c语言括号匹配的检验,检验括号匹配的算法
  2. 写一个函数,要求输入一个字符串和一个字符长度,根据字符长度对该字符串进行分隔
  3. Office 365管理员指引 17——Sharepoint 讨论版
  4. javascript(js)获取访客通过搜索引擎进入页面的搜索关键词的简洁有效代码
  5. SpringCloud微服务全栈实战讲解 - 公开课笔记
  6. Flutter - 生成二维码与识别二维码
  7. 阿里云对象存储OSS支持版本管理特性
  8. 1.4 Arithmetic Progressions
  9. Windows PowerShell 2.0创建调用脚本文件
  10. Windows下打印服务器的管理(二)
  11. 直播首屏耗时400ms以下的优化实践
  12. Linux音频驱动-WAV文件格式分析
  13. Python读取文件找出重复元素
  14. linux查看数据区块大小,Linux显示指定区块大小为1048576字节
  15. Xcode14 终于放弃了bitcode和armv7架构,还有iOS 9、iOS 10
  16. java正态分布随机数产生方法
  17. 稀疏矩阵 存储格式 COO CSR DIA ELL HYB
  18. 详谈Scrum和看板的区别
  19. windows安装maven
  20. [error] Keil:..\SYSTEM\usart\usart.c(38): error: #260-D: explicit type is missing (“int“ assumed)

热门文章

  1. 【水果识别】基于计算机视觉实现橙子数量识别含Matlab源码
  2. GHOST 所有参数大全
  3. Linux基础命令(四)文件查找和压缩、软件安装、源码包管理
  4. 改变-影响他人决策-信任是影响力的垫脚石
  5. 性能优化之MySQL(Structured Query Languag)
  6. wegame错误码7620296解决方案
  7. 关于“触点网”的诞生
  8. FC SAN 基础知识
  9. 搞混两种检测:美国疾控中心怎么会犯这样的错?
  10. 手把手教你用Python做一个哄女友神器,小白可上手