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( )
最新文章
- 安卓开发笔记——自定义广告轮播Banner(实现无限循环)
- SAP 锁机制
- Android读取assets目录下的资源
- Ubunte 11.4 下安装 SSH遇到的问题
- BZOJ 2986: Non-Squarefree Numbers [容斥原理 二分]
- EBS业务学习之库存管理
- 【原】git常见用法
- kindeditor扩展粘贴截图功能&;修改图片上传路径并通过webapi上传图片到图片服务器
- 自定义组件Component
- HTTP响应过程
- centos系统初始化流程及实现系统裁剪
- CPU型号各个字母的含义
- jquery easyui toolbar 分割线问题
- Java程序设计实践
- [k8s]elk架构设计-k8s集群里搭建
- [WorldWind学习]20.修改ShapeFileLayer类及托管D3D文字绘制方法
- Merging an upstream repository into your fork
- Linux命令之乐--rename
- 关于Markdown的空行
- linux 遇见错误Could not get lock /var/lib/dpkg/lock
热门文章
- Samcompu Loves Water
- 第九篇 数据表设计和保存item到json文件
- 209. Minimum Size Subarray Sum【滑动窗口】
- js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
- utmp, wtmp - 登 录 记 录(login records)
- 提升方法(boosting)详解
- pandas读书笔记 算数运算和数据对齐
- JS自运行函数的写法和MVVM框架数据驱动的底层逻辑
- 前端mockjs模拟图片验证码
- eclipse 上Svn将项目从分支合并到主干的方法