武漢是個美麗的城市,但這個城市現在生病了。
“人之初,性本善”
美麗的武漢生病了,一場大病,有錢的人能捐錢,而我,一直陪着你們吧,武漢加油 !
有人說“武漢人咋啥也喫”
有人說“武漢人真討厭,生病了還往外跑”
有人說“武漢加油”
… …
前幾天想,爲什麼我會看到人們都在罵武漢?是少部分人在罵?還是我們都在希望這個城市恢復。爲了驗證這個想法,我想看看,大多數人們怎麼想。
首先確定數據來源
我選取了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)
效果如下
未設置雲圖形狀時:
設置雲圖形狀:
雲圖參考邊框:
“武漢加油,武漢加油,武漢加油,中國加油,五千年文明怎會被寒冬摧毀”
可見,大多數人並沒有那麼心涼,武漢的同胞們,大多數人仍然和你在一起,大多數人不會讓愛“隔離”,加油武漢!
而前不久,有人還在某平臺吵起了“地域黑”,我是敢怒不敢言,網絡上這樣的人真令人噁心,而我今天想告訴他們,你們只是少數,你們不入流。
錯的不是武漢人,是人們的自私,武漢逃離的同胞害怕,請你別害怕,相信我們的黨政府,罵武漢的人,請你住嘴,你只是少數,大多數人仍然愛着武漢,愛着中國。
文案不咋的,但就是告訴人們,人之初,性本善,別讓雜音污染了耳朵,心向陽!請支持我們的醫務人員,別喫野味了。我只能做些這了。