bilibili弹幕爬虫

示例网址:
https://www.bilibili.com/video/av21483276

视频弹幕网址:
https://comment.bilibili.com/35358033.xml

视频下载地址:
https://upos-hz-mirrorwcsu.acgvideo.com/upgcxcode/33/80/35358033/35358033-1-32.flv?e=ig8euxZM2rNcNbR1hwdVhoM1hWdVhwdEto8g5X10ugNcXBlqNxHxNEVE5XREto8KqJZHUa6m5J0SqE85tZvEuENvNC8xNEVE9EKE9IMvXBvE2ENvNCImNEVEK9GVqJIwqa80WXIekXRE9IMvXBvEuENvNCImNEVEua6m2jIxux0CkF6s2JZv5x0DQJZY2F8SkXKE9IB5QK==&deadline=1547186777&gen=playurl&nbs=1&oi=3056465252&os=wcsu&platform=pc&trid=2ee0f4513d654dc4a6b4cd9d37f2a59a&uipk=5&upsig=b5084f0c9b0308489c7836a3efee6fd9

其实是根据网上的帖子反推的

  1. 找35358033

    在window.__playinfo__标签下

有点复杂,再找

找到了最右面视频的地址,直接可以下载

找了一圈
决定从下面入手


re.findall(r"\"pages\"\:\[\{\"cid\":(.*?)\,", res, re.S)[0]

上代码

import requests
from lxml import etree
import re
from pprint import pprint
import jsonclass Bili(object):def __init__(self, url_num):self.name = "av号" + str(url_num)self.url = "https://www.bilibili.com/video/av{}/".format(url_num)self.headers = {"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36"}def parse(self,url):response = requests.get(url, headers=self.headers)res = response.content.decode()return resdef get_content(self, res):html = etree.HTML(res)item = {}item["title"] = html.xpath("//div[@id='viewbox_report']/h1/@title")[0] if len(html.xpath("//div[@id='viewbox_report']/h1/@title")) > 0 else Noneif item["title"]:item["cid"] = re.findall(r"\"pages\"\:\[\{\"cid\":(.*?)\,", res, re.S)[0]else:return Noneprint(item)return itemdef get_url(self, item):cid = item["cid"]danmu_url = "https://comment.bilibili.com/{}.xml".format(cid)print(danmu_url)return danmu_urldef get_danmu(self, res, item):print("0"*100)pprint(res)print("0" * 100)html = etree.HTML(res.encode())print(html)item["弹幕"] = html.xpath("//d/text()")# pprint(item)return itemdef save(self, name, content):with open("{}.json".format(name), "a", encoding="utf-8")as f:f.write(json.dumps(content, ensure_ascii=False, indent=4))print("保存成功")def run(self):item = {}# 1 获取url# 2 发送请求,获取相应res = self.parse(self.url)# 3 提取cid和标题item = self.get_content(res)if item == None:print("vid号不正确,请重新输入。")return# 4 组合弹幕urldanmu_url = self.get_url(item)# 5 发送请求获取相应res_danmu = self.parse(danmu_url)# 6 提取end = self.get_danmu(res_danmu, item)# 7 保存self.save(self.name, end)print("程序结束")if __name__ == '__main__':# url_num = input("请输入8位视频av号:")url_num = 21483276print("url_num=", url_num)b = Bili(url_num)b.run()

参考

https://blog.csdn.net/qq_22043649/article/details/80985903

https://blog.csdn.net/a360316515/article/details/83058481

bilibili弹幕爬虫, 2019-1-10相关推荐

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

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

  2. Bilibili for mac 2019 - 国内知名的视频弹幕社区软件(b站)

    文章来源于:风云社区 Bilibili for mac 2019 今天给大家分享Bilibili for mac 2019,支持 macOS 10.14,支持 B 站新版页面,修复播放器窗口拖动.默认 ...

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

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

  4. 今天分享个用Python爬虫爬取Bilibili弹幕的小例子解析

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

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

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

  6. 爬虫数据云词图片怎么做?小姐姐教你用python做B站弹幕爬虫,并进行数据分析生成词云

    hello大家好,我是你们的可爱丸,大家平时在B站看视频时有没有开弹幕的习惯呢?如果不把视频从头看到尾,那么多弹幕,我们怎么快速的知道大家都说了些什么并且持有什么观点呢? 今天小姐姐就教你做一个简单的 ...

  7. python中国大学排名爬虫写明详细步骤-Python爬虫--2019大学排名数据抓取

    Python爬虫--2019大学排名数据抓取 准备工作 输入:大学排名URL连接 输出:大学排名信息屏幕输出 所需要用到的库:requests,bs4 思路 获取网页信息 提取网页中的内容并放到数据结 ...

  8. python爬取bilibili弹幕_GitHub - yxwangnju/Bilibili-Bullet-Screen-Crawler: 一个爬取bilibili上弹幕的简单python程序...

    Bilibili Bullet Screen Crawler 用python语言实现了一个简单的哔哩哔哩弹幕爬虫程序. 1. 运行环境 python 3 and higher versions. 运行 ...

  9. 2019 年 10 大顶级 Python 支持库

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 安得广厦千万间,大庇天下寒士俱欢颜 ...

  10. 解读 | 2019年10篇计算机视觉精选论文(中)

    导读:2019 年转眼已经接近尾声,我们看到,这一年计算机视觉(CV)领域又诞生了大量出色的论文,提出了许多新颖的架构和方法,进一步提高了视觉系统的感知和生成能力.因此,我们精选了 2019 年十大 ...

最新文章

  1. ML顶会论文都可复现吗?来挑战一下,还能拿500美元补贴
  2. BZOJ 4584 [Apio2016]赛艇
  3. DCMTK:DCMTK文档
  4. python处理进度条
  5. mysql 递归查找父节点_MYSQL递归查询,根据子类ID查询所有父类(最全)
  6. Log.isDebugEnabled()使用场景
  7. 如何简单形象又有趣地讲解神经网络是什么?
  8. 组个最小数C语言pta,PTA|C语言:组个最小数
  9. 剑指Offer-正则表达式匹配(Python)
  10. python流程控制几种_python基础流程控制与数据类型
  11. java 身份证地址提取籍贯_从身份证号码中提取信息,这些方法请收好
  12. php中new与构造函数,php - 在构造函数中使用“ new”关键字 - SO中文参考 - www.soinside.com...
  13. [论文阅读] State-Relabeling Adversarial Active Learning
  14. hashset去重原理_快手:Druid精确去重的设计与实现
  15. Java map转JSON
  16. 深入理解JVM虚拟机1:JVM内存的结构与消失的永久代
  17. 计算机的未来发展前景论文,浅述未来计算机的发展趋势论文 计算机发展趋势论文...
  18. The Speed 歌词
  19. C#与PLC通信开发之三菱FX系列PLC
  20. 敏之澳电商:入驻拼多多开店流程及费用多少?

热门文章

  1. 在Python中建立N维数组并赋初值
  2. iOS-UIGraphics将两个图片合并成一张
  3. C++开源库列表总结记录
  4. java中奖概率_java实现抽奖概率类
  5. git创建分支,以及提交到远程创库
  6. PTA-1021-Deepest Root
  7. 加一 — Python
  8. 由课堂思考生活(作者:张子逸)
  9. 软件开发过程与项目管理
  10. 高数定理、法则(持续添加)