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( )

最新文章

  1. 安卓开发笔记——自定义广告轮播Banner(实现无限循环)
  2. SAP 锁机制
  3. Android读取assets目录下的资源
  4. Ubunte 11.4 下安装 SSH遇到的问题
  5. BZOJ 2986: Non-Squarefree Numbers [容斥原理 二分]
  6. EBS业务学习之库存管理
  7. 【原】git常见用法
  8. kindeditor扩展粘贴截图功能&修改图片上传路径并通过webapi上传图片到图片服务器
  9. 自定义组件Component
  10. HTTP响应过程
  11. centos系统初始化流程及实现系统裁剪
  12. CPU型号各个字母的含义
  13. jquery easyui toolbar 分割线问题
  14. Java程序设计实践
  15. [k8s]elk架构设计-k8s集群里搭建
  16. [WorldWind学习]20.修改ShapeFileLayer类及托管D3D文字绘制方法
  17. Merging an upstream repository into your fork
  18. Linux命令之乐--rename
  19. 关于Markdown的空行
  20. linux 遇见错误Could not get lock /var/lib/dpkg/lock

热门文章

  1. Samcompu Loves Water
  2. 第九篇 数据表设计和保存item到json文件
  3. 209. Minimum Size Subarray Sum【滑动窗口】
  4. js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
  5. utmp, wtmp - 登 录 记 录(login records)
  6. 提升方法(boosting)详解
  7. pandas读书笔记 算数运算和数据对齐
  8. JS自运行函数的写法和MVVM框架数据驱动的底层逻辑
  9. 前端mockjs模拟图片验证码
  10. eclipse 上Svn将项目从分支合并到主干的方法