CSIC_716_20191028【爬小破站】
1、爬取小破站的弹幕
2、展示爬取内容
打开网页,用教的方法找到cid 和header
import requests
from bs4 import BeautufulSoup
import pandas as pd
import re
header={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36'
}#小破站的header可以通过谷歌浏览器的network中的request header获取
url=' http://comment.破站.com/125507930.xml' #以爬取小破站cid=125507930为例
response=request.get(headers=header,url=url) #获取响应
response.encoding=response.apparent_encoding
data=response.text
soup=BeautifulSoup(data,'lxml' )#解析
dlist=soup.find_all('d') #将内容按照规律向需要获取的内容筛选靠拢,存入dlist
d_list=[ ]
for i in d_list
danmu{ }
danmu['弹幕']=i.text
d_list.append(danmu) #将取到的值放到d_list中
df=pd.dateframe(d_list) #df应该还是列表,pd是pandas
f.open('sign.txt','encoding='utf-8')
for p in danmu['danmu'].value:
pat=re.compile(r'[一-龥]+')
filter_data=re.findall(pattern=pat,string=p )#筛选
f.write( " ".join(filter_data)) #保存数据进入sign文件
f.close()
------------------------------------------------------------------------------------------------------------------------------------------------------
利用上面获得的文件 sign.txt进行展示
import jieba
from imageio import imread
from wordcloud import WordCloud
f.open('sign.txt ',encoding='utf-8' )
data=f.read()
result=" ".join(jieba.lcut(data))
f.close( )
mask_color=imread('XXXX.jpg')
wc=WordCloud(
font_path='font的路径',
mask=mask_color,
width=xx,
height=xx,
)
wc.generate(result)
wc.to_file('xxxx.png')
plt.imshow( wc)
plt.show()
----------------------------------------------------以下为正式代码将两者合并--------------------------------------------------------------------------------------------------
如果不生成中间文件,爬完网页直接生成图片,代码合并,如下所示
#coding:utf-8
import requests
import jieba
import pandas as pd
import re
import matplotlib.pyplot as plt
from bs4 import BeautifulSoup
from imageio import imread
from wordcloud import WordCloud
header={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36'
}
url='http://comment.bilibili.com/122593266.xml' #换一下数字的cid即可
response = requests.get(url=url,headers=header)
response.encoding=response.apparent_encoding
data=response.text
suop=BeautifulSoup(data,'lxml')
list_filter=suop.find_all('d')
plist=[]
for i in list_filter:
danmu={}
danmu['弹幕']= i.text
plist.append(danmu)
df=pd.DataFrame(plist)
reslist=[]
for p in df['弹幕'].values:
txtfilter= re.compile(r'[一-龥]+')
res=re.findall(pattern=txtfilter,string=p)
result = " ".join(res)
reslist.append(result)
result= " ".join(reslist)
finalResult=" ".join(jieba.lcut(result))
mask_color=imread('五角星.jpg') #图片可以随意替换,放在project中即可
wc=WordCloud(
font_path=r'C:\Windows\Fonts\STLITI.TTF',
mask=mask_color,
width=1920,
height=1080,
background_color='white'
)
wc.generate(finalResult)
wc.to_file('hunt.png')
plt.imshow(wc)
plt.show( )
CSIC_716_20191028【爬小破站】的更多相关文章
- Typecho部署小破站
写在前面 以前利用 Github Page + Hexo框架 + Next主题搭建过静态博客,没错就是那个黑白色系的网页!但是体验并不是很好,一来本身是静态网页,页面内容要修改都需要在本地修改完上传到 ...
- 爬虫---爬取b站小视频
前面通过python爬虫爬取过图片,文字,今天我们一起爬取下b站的小视频,其实呢,测试过程中需要用到视频文件,找了几个网站下载,都需要会员什么的,直接写一篇爬虫爬取视频~~~ 分析b站小视频 1.进入 ...
- 萌新学习Python爬取B站弹幕+R语言分词demo说明
代码地址如下:http://www.demodashi.com/demo/11578.html 一.写在前面 之前在简书首页看到了Python爬虫的介绍,于是就想着爬取B站弹幕并绘制词云,因此有了这样 ...
- 爬虫练习四:爬取b站番剧字幕
由于个人经常在空闲时间在b站看些小视频欢乐一下,这次就想到了爬取b站视频的弹幕. 这里就以番剧<我的妹妹不可能那么可爱>第一季为例,抓取这一番剧每一话对应的弹幕. 1. 分析页面 这部番剧 ...
- Python 网络爬虫实战:爬取 B站《全职高手》20万条评论数据
本周我们的目标是:B站(哔哩哔哩弹幕网 https://www.bilibili.com )视频评论数据. 我们都知道,B站有很多号称“镇站之宝”的视频,拥有着数量极其恐怖的评论和弹幕.所以这次我们的 ...
- 用Python爬取B站、腾讯视频、爱奇艺和芒果TV视频弹幕!
众所周知,弹幕,即在网络上观看视频时弹出的评论性字幕.不知道大家看视频的时候会不会点开弹幕,于我而言,弹幕是视频内容的良好补充,是一个组织良好的评论序列.通过分析弹幕,我们可以快速洞察广大观众对于视频 ...
- 从0实现python批量爬取p站插画
一.本文编写缘由 很久没有写过爬虫,已经忘得差不多了.以爬取p站图片为着手点,进行爬虫复习与实践. 欢迎学习Python的小伙伴可以加我扣群86七06七945,大家一起学习讨论 二.获取网页源码 爬取 ...
- Java爬取B站弹幕 —— Python云图Wordcloud生成弹幕词云
一 . Java爬取B站弹幕 弹幕的存储位置 如何通过B站视频AV号找到弹幕对应的xml文件号 首先爬取视频网页,将对应视频网页源码获得 就可以找到该视频的av号aid=8678034 还有弹幕序号, ...
- Web侦察工具HTTrack (爬取整站)
Web侦察工具HTTrack (爬取整站) HTTrack介绍 爬取整站的网页,用于离线浏览,减少与目标系统交互,HTTrack是一个免费的(GPL,自由软件)和易于使用的离线浏览器工具.它允许您从I ...
随机推荐
- Day 16 : Python 时间模块[time,]datetime[]及第三方模块的下载与安装
在进行python程序开发时,除了可以使用python内置的标准模块外,还右许多第三方模块使用,可以在python官网找到. 在使用第三方模块时,需要下载并安装此模块,然后就可以使用标准模块一样导入并 ...
- centos7部署汉化版gitlab
=============================================== 2018/6/5_第7次修改 ccb_warlock 更新说 ...
- script标签的defer、async属性
之前一直对script标签的defer.async属性一知半解,直到看到了论坛上某大神发的图片,茅塞顿开!!!!!
- 6.1_springboot2.x分布式-整合SpringCloud
1.SpringCloud简介 Spring Cloud是一个分布式的整体解决方案.Spring Cloud 为开发者提供了在分布式系统(配置管理,服务发现,熔断,路由,微代理,控制总线,一次性t ...
- 关于Web中的图标使用问题
挺懒的,这里做个记录. Web中的图标使用问题 : https://github.com/amfe/article/issues/2
- 关于py中lxml模块的cssselect的小问题
今天在使用lxml进行解析页面的时候遇到了不能解析空格的问题,就是类似于: <div class="aa bb"></div> 使用cssselect('. ...
- Oracle中NEXTVAL 和 CURRVAL的使用
能够通过在 SQL 语句中使用 NEXTVAL 或 CURRVAL 运算符来訪问序列的值.必须用以 sequence.NEXTVAL 或sequence.CURRVAL 格式驻留在同一个数据库中的序列 ...
- (转)Java中Image的水平翻转、缩放与自由旋转操作
来自:http://cping1982.blog.51cto.com/601635/130066/ 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责 ...
- 从数据库更新模型报错:无法将运行时连接字符串转换为设计时等效项,没有为提供程序“mysql.data.mysqlclient”安装为设计目的启用visual studio以便与数据库进行通信所需要的库
评论里有同学说:VS2017 Enterprise版本的无效,我现在也是用的vs2017Enterprise版本,数据库也是mysql的,但没遇到过.在此说明一下. 一.环境:VS2015 + EF ...
- (PASS)java中打印当月的日历的每一天
package test; import java.time.DayOfWeek; import java.time.LocalDate; /** * * @ClassName: Calendar ...