武汉是个美丽的城市,但这个城市现在生病了。
“人之初,性本善”
美丽的武汉生病了,一场大病,有钱的人能捐钱,而我,一直陪着你们吧,武汉加油 !
有人说“武汉人咋啥也吃”
有人说“武汉人真讨厌,生病了还往外跑”
有人说“武汉加油”
… …
前几天想,为什么我会看到人们都在骂武汉?是少部分人在骂?还是我们都在希望这个城市恢复。为了验证这个想法,我想看看,大多数人们怎么想。
首先确定数据来源
我选取了B站,某些UP主做的视频的弹幕为数据源,总共3个,浏览量较大,弹幕较多。
单拿第一个为例,我们右键查看网页源码根本不会发现我们要获得的内容,这时候,关键步骤来了。
1.按F12,打开后台。
2.在搜索框中搜索list
3.此时,刷新网页,就会出现我们需要的(如图)
双击进入此网页
其次,爬取网页内容
import requests
from bs4 import BeautifulSoup
def get_url_comment(url):
headers = {
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3741.400 QQBrowser/10.5.3863.400"
}
try:
r = requests.get(url ,headers = headers, timeout = 30)#获得url的相关参数
r.raise_for_status()
r.encoding = r.apparent_encoding
print ("网页获取成功",r.status_code )
return r.text
except Exception as e :
return "网页爬取异常" , r.status_code ,e#返回状态码
def explain_HTML_comment(text):#解析网页内容,并获得弹幕内容,保存至lst列表数据结构当中
global lst
lst = []
soup = BeautifulSoup(text, "html.parser") # 解释
for item in soup.find_all("d"):
lst.append(item.get_text())
接着图像处理
import wordcloud
from imageio import imread
def analysis_wordcloud(text):
print ("执行图像处理中....")
mk = imread(r"C:\Users\Dell\Desktop\u=3054214792,672612295&fm=26&gp=0.jpg")
w = wordcloud.WordCloud(width = 1500,
height = 1500,
background_color = 'white',
font_path = 'msyh.ttc',
max_words = 1000,
mask = mk,
contour_width = 5,
contour_color = 'red'
); # 配置对象参数
w.generate(text); # 加载词云文本
w.to_file(r"C:\Users\Dell\Desktop\yuntu1.jpg")
print ("执行结束,已保存至桌面")
欧克,总代码如下
import requests
from bs4 import BeautifulSoup
import wordcloud
from imageio import imread
def get_url_comment(url):
headers = {
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3741.400 QQBrowser/10.5.3863.400"
}
try:
r = requests.get(url ,headers = headers, timeout = 30)#获得url的相关参数
r.raise_for_status()
r.encoding = r.apparent_encoding
print ("网页获取成功",r.status_code )
return r.text
except Exception as e :
return "网页爬取异常" , r.status_code ,e#返回状态码
def explain_HTML_comment(text):
global lst
lst = []
soup = BeautifulSoup(text, "html.parser") # 解释
for item in soup.find_all("d"):
lst.append(item.get_text())
def analysis_wordcloud(text):
print ("执行图像处理中....")
mk = imread(r"C:\Users\Dell\Desktop\u=3054214792,672612295&fm=26&gp=0.jpg")
w = wordcloud.WordCloud(width = 1500,
height = 1500,
background_color = 'white',
font_path = 'msyh.ttc',
max_words = 1000,
mask = mk,
contour_width = 5,
contour_color = 'red'
); # 配置对象参数
w.generate(text); # 加载词云文本
w.to_file(r"C:\Users\Dell\Desktop\yuntu1.jpg")
print ("执行结束,已保存至桌面")
if __name__ == '__main__':
url = [r"https://api.bilibili.com/x/v1/dm/list.so?oid=145005943",
"https://api.bilibili.com/x/v1/dm/list.so?oid=145317727",
"https://api.bilibili.com/x/v1/dm/list.so?oid=145567103"]#三个视频的弹幕网页
text = ""
text1 = ""
for each in url:
text += get_url_comment(each)
explain_HTML_comment(text)
text1 += ','.join(lst)
analysis_wordcloud(text1)
效果如下
未设置云图形状时:
设置云图形状:
云图参考边框:
“武汉加油,武汉加油,武汉加油,中国加油,五千年文明怎会被寒冬摧毁”
可见,大多数人并没有那么心凉,武汉的同胞们,大多数人仍然和你在一起,大多数人不会让爱“隔离”,加油武汉!
而前不久,有人还在某平台吵起了“地域黑”,我是敢怒不敢言,网络上这样的人真令人恶心,而我今天想告诉他们,你们只是少数,你们不入流。
错的不是武汉人,是人们的自私,武汉逃离的同胞害怕,请你别害怕,相信我们的党政府,骂武汉的人,请你住嘴,你只是少数,大多数人仍然爱着武汉,爱着中国。
文案不咋的,但就是告诉人们,人之初,性本善,别让杂音污染了耳朵,心向阳!请支持我们的医务人员,别吃野味了。我只能做些这了。