作爲一個男孩子,你會受得了一羣大眼萌妹對着你日式問侯,搭配主人般的服務?? 沒錯,4月17日,B站首發《公主連結》這款遊戲,已經火爆了!通過我的初步瞭解,這是一款輕度賣萌,劇情類,然後抽卡刷圖的網頁遊戲,也有人也說這是一款猛男專屬遊戲,因爲他的畫工完全是符合成人的思想構造的,由於整體呈現二次元風格,已經在B站開始走火起來,那我們就從這個萌遊中挖掘點寶藏出來吧!
遊戲界面:
整體界面都是那種很二次元風格,包括裏面的角色也是,都是女性角色,完全的滿足了猛男的種種幻想,據我瞭解,到現在開服不到一週的時間內,各渠道下載量已經快三百多萬了,這對於一個新款遊戲流量打造已經很不錯了。
B站下載得分:
其他渠道平臺的下載評分也均在八分以上,這對於一個新款手游來說相當了不起了!
python騷操作:
要想評價一個新款遊戲,常規的從畫質,美工,手感這些方向開始入手,但是我們作爲程序員,這些常規操作我們根本不屑,要做就得做大的,才能體現我們的逼格對吧,這裏用到一點點爬蟲知識,還有plt和一點wordcloud知識,但是不要擔心,我很詳細的!
下面是我打算做的步驟:
- 抓取高清壁紙:
- 抓取B站下載評論:
- 統計高頻詞彙:
- 繪製python詞雲:
因爲我的爬蟲還在學習中,有些地方不能解釋的很清楚,還請各位見諒見諒!
那下面我們開始吧!
抓取高清壁紙:
這個我覺得難度係數是最低的嘻嘻,先放一張圖壓壓驚:
- 函數庫: requests 庫 和 os 庫
代碼如下:
import requests
import os
def get_img(): # 抓取圖片
url = 'http://static.biligame.com/pcr/gw/pc/images/p6/op/' # 網址相同的部分
girl_url = []
for i in range(1, 30): # 假設抓取三十個文件
s = url + str(i) + '.jpg'
girl_url.append(s) # 拼接網址,然後裝入列表
path = 'D://公主連結壁紙//'
if not os.path.exists(path): # 如果path不存在
os.mkdir(path) # 創建path
os.chdir(path) # 進入path
else:
os.chdir(path)
for j, k in enumerate(girl_url):
r = requests.get(k)
if r.status_code == 200: # 如果請求正常 那我們就下載它
with open('girl' + str(j) + '.jpg', 'wb') as fw:
fw.write(r.content)
else:
print('壁紙數量不足!')
break
抓取B站下載評論:
- 第一步: 進入網址:然後點擊F12,然後這樣:
- 第二步:拼接xml網址:https://comment.bilibili.com/ + cid +.xml
在這裏把複製好的cid加入,那我們就得到這樣的網頁:
- 通過代碼處理一下數據,然後獲取:
import requests
from bs4 import BeautifulSoup
def get_data(girl_url): # 獲得中文詞彙
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36 Edg/81.0.416.58'} # 這裏加一個請求頭
r = requests.get(girl_url, headers=headers) # 獲得網頁
r.encoding = r.apparent_encoding # 轉碼
soup = BeautifulSoup(r.text, 'html.parser') # 解析庫
d = soup.find_all('d') # 獲得含有d標籤
d_text = [i.text for i in d] # 獲得所有的中文詞彙
d_text = [i.replace(' ', '') for i in d_text] # 去除空格
return d_text
統計高頻詞彙:
這裏使用到字典功能,具體的我們看代碼:
def get_item(girl_text): # 統計高頻詞彙
counts = {} # 設置一個字典
for i in girl_text:
counts[i] = counts.get(i, 0) + 1 # 存在就給值,不存在就給0,然後加1
item = list(counts.items()) # 列表
item.sort(key=lambda x: x[1], reverse=True) # 正序
for i in range(10): # 打印前十個
girl_data, girl_count = item[i]
print(girl_data, girl_count)
return item[:10]
效果圖:
這有一點出乎意料呀,果然公主焊接纔是猛男愛的遊戲!
生成高頻詞雲:
- 需要的函數庫:
pip install wordcloud
很不好意思,程序到這裏,突然bug了,我爬蟲也不是很好,也不知道發生了什麼,我找了好久,還是找不到程序到底出錯在哪裏了,所以後面我打算換一種方式繼續下去,真的很抱歉!但是我還是想把文章寫下去的,
那我們就自己生成一下詞彙,總要達到我要的結果
代碼:
import wordcloud
from PIL import Image
def make_wordcloud(): # 製作詞雲
item = [('啥也幹不死', 11), ('散人幹不死', 10), ('傻人肝不死', 9),
('接頭霸王', 7), ('公主焊接', 7), ('媽!', 6), ('日日日', 6),
('活動', 5), ('散人肝不死', 5), ('母豬焊接', 4)]
word = [] # 存放總的詞彙
for i in range(len(item)): # 長度
girl_data, girl_count = item[i]
s = [girl_data for i in range(girl_count)]
word.append(s) # 獲得總詞彙
# 下面製作詞雲
t = sum(word, []) # 使用sum方式把二維變成一維
t = ' '.join(t)
twc = wordcloud.WordCloud(background_color='Tan', width=1500, height=1000, font_path="msyh.ttc")
twc.generate(t) # 生成詞雲
twc.to_file('girl.png')
a = Image.open('girl.png')
a.show()
效果圖:
後記:
一下子知識體系跨越的讓我很暈,通過這次我感覺到了自己的能力還是欠缺,不管怎麼說,加油吧!