python爬虫实战之bilibili弹幕生成云图
突然想到了这个题目,先开了题,看能不能一次搞定,#后记,花了两天时间搞定的,一直想用自己的方法爬,但是效果都不好
首先去分析一下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弹幕生成云图的更多相关文章
- Python爬虫实战(4):豆瓣小组话题数据采集—动态网页
1, 引言 注释:上一篇<Python爬虫实战(3):安居客房产经纪人信息采集>,访问的网页是静态网页,有朋友模仿那个实战来采集动态加载豆瓣小组的网页,结果不成功.本篇是针对动态网页的数据 ...
- Python爬虫实战(2):爬取京东商品列表
1,引言 在上一篇<Python爬虫实战:爬取Drupal论坛帖子列表>,爬取了一个用Drupal做的论坛,是静态页面,抓取比较容易,即使直接解析html源文件都可以抓取到需要的内容.相反 ...
- 【图文详解】python爬虫实战——5分钟做个图片自动下载器
python爬虫实战——图片自动下载器 之前介绍了那么多基本知识[Python爬虫]入门知识,(没看的先去看!!)大家也估计手痒了.想要实际做个小东西来看看,毕竟: talk is cheap sho ...
- Python爬虫实战四之抓取淘宝MM照片
原文:Python爬虫实战四之抓取淘宝MM照片其实还有好多,大家可以看 Python爬虫学习系列教程 福利啊福利,本次为大家带来的项目是抓取淘宝MM照片并保存起来,大家有没有很激动呢? 本篇目标 1. ...
- Python爬虫实战---抓取图书馆借阅信息
Python爬虫实战---抓取图书馆借阅信息 原创作品,引用请表明出处:Python爬虫实战---抓取图书馆借阅信息 前段时间在图书馆借了很多书,借得多了就容易忘记每本书的应还日期,老是担心自己会违约 ...
- Python爬虫实战七之计算大学本学期绩点
大家好,本次为大家带来的项目是计算大学本学期绩点.首先说明的是,博主来自山东大学,有属于个人的学生成绩管理系统,需要学号密码才可以登录,不过可能广大读者没有这个学号密码,不能实际进行操作,所以最主要的 ...
- Python爬虫实战八之利用Selenium抓取淘宝匿名旺旺
更新 其实本文的初衷是为了获取淘宝的非匿名旺旺,在淘宝详情页的最下方有相关评论,含有非匿名旺旺号,快一年了淘宝都没有修复这个. 可就在今天,淘宝把所有的账号设置成了匿名显示,SO,获取非匿名旺旺号已经 ...
- Python爬虫实战六之抓取爱问知识人问题并保存至数据库
大家好,本次为大家带来的是抓取爱问知识人的问题并将问题和答案保存到数据库的方法,涉及的内容包括: Urllib的用法及异常处理 Beautiful Soup的简单应用 MySQLdb的基础用法 正则表 ...
- Python爬虫实战五之模拟登录淘宝并获取所有订单
经过多次尝试,模拟登录淘宝终于成功了,实在是不容易,淘宝的登录加密和验证太复杂了,煞费苦心,在此写出来和大家一起分享,希望大家支持. 温馨提示 更新时间,2016-02-01,现在淘宝换成了滑块验证了 ...
随机推荐
- 阿里云Linux的mysql安装,使用yum安装
1.下载 我下载的mysql5.7 rpm格式的,在Linux的根目录下下载(防止出现安装的问题) wget https://dev.mysql.com/get/mysql57-community-r ...
- LR测试报告分析 -详解
1. 结果摘要 LoadRunner进行场景测试结果收集后,首先显示的该结果的一个摘要信息,如下图所示.概要中列出了场景执行情况.“Statistics Summary(统计信息摘要)”.“Trans ...
- Linux入门基础(二):Linux磁盘及文件管理系统
磁盘管理 fdisk分区工具 只支持MBR分区 fdisk命令只有root用户能用 fdisk -l 列出所有安装磁盘及分区信息 fdisk /dev/sda (操作磁盘,按m可列出帮助界面,常用的操 ...
- Python3中的函数 大全
Python 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.Python提供了许多内建函数,比如print().但也可以自己创建 ...
- 开发简单的IO多路复用web框架
自制web框架 1.核心IO多路复用部分 # -*- coding:utf-8 -*- import socket import select class Snow(): def __init__(s ...
- PC端上必应词典与金山词霸的测评分析
1. 介绍 随着英语学习越来越普及,基本上现在每位大学生的电脑上都会有一款便捷的英语查词软件,这次我们团队选择测评的 是微软必应词典(3.5.0.4311)和金山词霸(2014.05.16.044) ...
- BUAAMOOC-Alpha版本发布说明
BUAAMOOC-Alpha版本发布说明 本说明为BUAAMOOCv1.0版发布说明. 软件截图 上届软件截图 可以看到上届的界面做的很简陋,对于登录.查看课程列表.观看视频等操作需要跳转多个页面,视 ...
- [buaa-SE-2017]个人作业-回顾
个人作业-回顾 提问题的博客:[buaa-SE-2017]个人作业-Week1 Part1: 问题的解答和分析 1.1 问题:根据书中"除了前20的学校之外,计科和软工没有区别"所 ...
- 在数组中找出两数之和为10的所有组合(JAVA)
/*利用冒泡排序实现*/ import java.util.Scanner;public class Paixun { public static void main(String[] args) { ...
- Firefox插件开发学习总结
2018.06.14 我们小组最初只准备开发运行在google上的知乎插件,但我们经过调研发现还有一大部分用户是使用的火狐浏览器,所以我们也准备制作火狐插件.以下是我学习了部分火狐插件制作知识后的总结 ...