python挖掘B站猛男手遊公主連結的另類操作!

作爲一個男孩子,你會受得了一羣大眼萌妹對着你日式問侯,搭配主人般的服務?? 沒錯,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()

效果圖:
在這裏插入圖片描述


後記:

一下子知識體系跨越的讓我很暈,通過這次我感覺到了自己的能力還是欠缺,不管怎麼說,加油吧!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章