突然想到了这个题目,先开了题,看能不能一次搞定,#后记,花了两天时间搞定的,一直想用自己的方法爬,但是效果都不好

首先去分析一下bilibili的网站请求,但是弹幕的异步传输的包抓不到(或者隐藏的好,或者是我技术水平有限),然后网上比较一致的看法是在JS里暴露了一个弹幕xml文件的id,然后用一个新的请求把xml文件下载下来,然后分析。

大体思路是:用avid去拿到cid,cid获取到弹幕文件,解析弹幕文件,生成云图

搞了两天,先把代码扔上来

from selenium import webdriver
from bs4 import BeautifulSoup
import re
from wordcloud import WordCloud
from scipy.misc import imread
import matplotlib.pyplot as plt driver=webdriver.PhantomJS()
driver.get('http://www.bilibili.com/video/av15719999/') #用的是selenium和webdriver,试过用requests库的get方法,不成功
soup = BeautifulSoup(driver.page_source,'lxml') #把返回的html解析出来 sc = soup.find('script',text=re.compile("EmbedPlayer*"))#找到有特定词‘EmbedPlayer’的script标签
sc1 =str(sc) #截取cid的值
a = sc1.find('cid=');
b = sc1.find('&');
sc2=sc1[a+4:b]
# print(sc2)
driver.get("http://comment.bilibili.com/"+sc2+".xml") #这个是重点,通过刚才拿到的cid去把弹幕的xml文件拿下来
soupxml = BeautifulSoup(driver.page_source,'lxml')
ds =soupxml.find_all('d')#拿到所有的弹幕节点
cuttext =''
for d in ds:
cuttext = cuttext+' '+str(d.text);#使用一个字符串把文件串起来
#print(cuttext)
#初始化词云
color_mask = imread("425176.jpg") # 读取背景图片
cloud = WordCloud(
# 设置字体,不指定就会出现乱码,这个文件是字体文件,可以去网上下载一个,然后写上路径
font_path="SourceHanSerif-Heavy.ttc",
# 设置背景色
background_color='white',
# 词云形状,就是刚才读取的背景图片
mask=color_mask,
# 允许最大词汇,出os报错的时候可能就是这个设置过大了
max_words=100,
# 最大号字体,出os报错的时候可能就是这个设置过大了
# max_font_size=40
)
word_cloud = cloud.generate_from_text(cuttext) # 产生词云
word_cloud.to_file("3.png") # 保存图片
# 显示词云图片
plt.imshow(word_cloud)
plt.axis('off')
plt.show()

不嫌弃的话可以访问我的个人主页,已经把功能集成到上边去了。在Funs功能列表中

http://1163949417-jack.55555.io/west/main/

python爬虫实战之bilibili弹幕生成云图的更多相关文章

  1. Python爬虫实战(4):豆瓣小组话题数据采集—动态网页

    1, 引言 注释:上一篇<Python爬虫实战(3):安居客房产经纪人信息采集>,访问的网页是静态网页,有朋友模仿那个实战来采集动态加载豆瓣小组的网页,结果不成功.本篇是针对动态网页的数据 ...

  2. Python爬虫实战(2):爬取京东商品列表

    1,引言 在上一篇<Python爬虫实战:爬取Drupal论坛帖子列表>,爬取了一个用Drupal做的论坛,是静态页面,抓取比较容易,即使直接解析html源文件都可以抓取到需要的内容.相反 ...

  3. 【图文详解】python爬虫实战——5分钟做个图片自动下载器

    python爬虫实战——图片自动下载器 之前介绍了那么多基本知识[Python爬虫]入门知识,(没看的先去看!!)大家也估计手痒了.想要实际做个小东西来看看,毕竟: talk is cheap sho ...

  4. Python爬虫实战四之抓取淘宝MM照片

    原文:Python爬虫实战四之抓取淘宝MM照片其实还有好多,大家可以看 Python爬虫学习系列教程 福利啊福利,本次为大家带来的项目是抓取淘宝MM照片并保存起来,大家有没有很激动呢? 本篇目标 1. ...

  5. Python爬虫实战---抓取图书馆借阅信息

    Python爬虫实战---抓取图书馆借阅信息 原创作品,引用请表明出处:Python爬虫实战---抓取图书馆借阅信息 前段时间在图书馆借了很多书,借得多了就容易忘记每本书的应还日期,老是担心自己会违约 ...

  6. Python爬虫实战七之计算大学本学期绩点

    大家好,本次为大家带来的项目是计算大学本学期绩点.首先说明的是,博主来自山东大学,有属于个人的学生成绩管理系统,需要学号密码才可以登录,不过可能广大读者没有这个学号密码,不能实际进行操作,所以最主要的 ...

  7. Python爬虫实战八之利用Selenium抓取淘宝匿名旺旺

    更新 其实本文的初衷是为了获取淘宝的非匿名旺旺,在淘宝详情页的最下方有相关评论,含有非匿名旺旺号,快一年了淘宝都没有修复这个. 可就在今天,淘宝把所有的账号设置成了匿名显示,SO,获取非匿名旺旺号已经 ...

  8. Python爬虫实战六之抓取爱问知识人问题并保存至数据库

    大家好,本次为大家带来的是抓取爱问知识人的问题并将问题和答案保存到数据库的方法,涉及的内容包括: Urllib的用法及异常处理 Beautiful Soup的简单应用 MySQLdb的基础用法 正则表 ...

  9. Python爬虫实战五之模拟登录淘宝并获取所有订单

    经过多次尝试,模拟登录淘宝终于成功了,实在是不容易,淘宝的登录加密和验证太复杂了,煞费苦心,在此写出来和大家一起分享,希望大家支持. 温馨提示 更新时间,2016-02-01,现在淘宝换成了滑块验证了 ...

随机推荐

  1. django 部署一个简单的博客系统

    转:https://www.cnblogs.com/fnng/p/3737964.html 写的目的, 加深影响,熟悉开发流程, 开发都是练出来的. 环境 python3.5 windows 7 1. ...

  2. sqlmap简单中文说明

    首先下载需要的文件,如果是windows环境直接到http://sqlmap.org/下载安装所需要的文件即可. 更新 svn checkout https://svn.sqlmap.org/sqlm ...

  3. 遗留系统:IT攻城狮永远的痛

    我常常觉得我们非常幸运,我们现在所处的时代是一个令人振奋的时代,我们进入了软件工业时代.在这个时代里,我们进行软件开发已经不再是一个一个的小作坊,我们在进行着集团化的大规模开发.我们开发的软件不再是为 ...

  4. TCP/IP理解

    目录 1.概述 2.TCP/IP寻址及其协议族 3.TCP/IP 邮件 1.概述 介绍:什么是TCP/IP? TCP/IP协议是对计算机必须遵守的规则的描述,遵守了规则才能通信. 应用: 浏览器与服务 ...

  5. python中@property和property函数使用

    1.基本的@property使用,可以把函数当做属性用 class Person(object): @property def get_name(self): print('我叫xxx') def m ...

  6. python的eval和json.loads(),json.dumps()

    eval() 将字符串当成一个表达式去执行,可以想象成一个去字符串然后执行的操作. In [1]: s = '3*8' In [2]: eval(s) Out[2]: 24 eval()和json.l ...

  7. 32bit 天堂服务端假设教程

    本文作者:smeli(俄罗斯人,于2009年完成该教程) PS:要比国内写的那些教程完整,详细,希望大家喜欢 VS运行库安装………………………………………..2 SQL数据库安装…………………………… ...

  8. Java中final与 static final 修饰的常量的区别

    喵喵开车,新手上路,多多关照.有任何错误请在评论区指出. ...........................................我是万恶的分界线( • ̀ω•́ )✧......... ...

  9. Netty源码分析第1章(Netty启动流程)---->第2节: NioServerSocketChannel的创建

    Netty源码分析第一章:  Server启动流程 第二节:NioServerSocketChannel的创建 我们如果熟悉Nio, 则对channel的概念则不会陌生, channel在相当于一个通 ...

  10. 升级salt导致进程kill问题记录

    重启salt-minion导致由salt启动的进程kill问题排查 作者:耀耀 blog:https://www.liuyao.me 环境 服务器系统为centos6及centos7 服务器服务进程都 ...