我爬取了37000條球迷評論,知道了這場比賽的重要信息

這是平常學python的第18篇原創文章
python

此次用python爬蟲爬點好玩的東西git

這兩天看剛好有nba決賽,是球迷的你確定不會錯過的,更況且今年的西部決賽是火箭對戰勇士,今年的火箭是很強的,由於沒到關鍵時候總會有人站出來。固然,勇士也是挺強的,畢竟不能小看庫裏杜蘭特等四大巨頭。github

東部的決賽我就不太知道了,一直覺得是凱爾特人會苦戰騎士,誰知道缺了兩大主力的凱爾特人仍是很強,並且還打了騎士2:0,看來此次的騎士會是凶多吉少了,不知道凱爾特人會不會成功復仇,讓咱們拭目以待吧!json

有直播就確定有評論,因此我想爬取下球迷評論,看看他們都在聊什麼!網絡

準備工做python爬蟲

須要用到的庫:url

    requests:用於網絡請求spa

    jieba:用於分詞
命令行

    wordcloud:製做詞雲圖
3d

    numpy:製做背景圖片

詞雲背景圖片:

上面的庫都是能夠直接用pip進行下載的,可是wordcloud會報錯,報錯以下:

咱們須要去官網下載whl文件進行手動安裝

官網:https://www.lfd.uci.edu/~gohlke/pythonlibs/

而後找到對應本身安裝的python版本進行下載

最後在命令行下安裝便可

pip install 「文件路徑+whl文件名」

接下來尋找目標網頁

文字直播地址:https://www.zhibo8.cc/zhibo/nba/2018/0517123898.htm?redirect=zhibo

在這個網頁經過抓包(按下f12)課知道下面這個連接是返回評論信息,並且是個json

連接爲:https://cache.zhibo8.cc/json/2018/nba/0517123898_384.htm?key=0.6512348313080727

經過屢次分析知道上面加粗的是直播間的信息,後面的下劃線以後的是評論的頁數,最後的key參數是個隨機數,帶不帶上進行請求都沒有關係

用代碼來獲取評論信息

def __get_json(self, index):
       url = 'https://cache.zhibo8.cc/json/2018/nba/0517123898_%d.htm?key=0.1355540028791382' % index
       response = requests.get(url)
       if response.status_code == 200:
           for item in response.json():
               # 寫入文件
               self.__write_file(item['content'])
               self.num += 1
           return 1
       else:
           return 0複製代碼

評論信息有了,接着弄張詞雲圖

def __get_wordcloud(self):
       with open('comments.txt''r', encoding='utf-8'as comments:
           text = comments.read()  # 加載數據
           words = ' '.join(jieba.cut(text, cut_all=True))  # 採用結巴全分詞模式
           image = np.array(Image.open('1.jpg'))  # 背景圖片
           # 初始化詞雲
           wc = WordCloud(font_path=r'C:\Windows\Fonts\simkai.ttf',
                          background_color='white', mask=image,
                          max_font_size=100, max_words=2000)
           wc.generate(words)  # 生成詞雲
           wc.to_file('img.png')  # 生成圖片
           image_file = Image.open('img.png')  # 打開圖片
           image_file.show()複製代碼

好了,代碼完成,看下效果:

利用詞雲圖一眼就能夠看出球迷都在評論什麼了,由於我爬取的是火箭主場對戰勇士的第二場比賽,確定討論最多的就是勇士火箭了,緊接的就是杜蘭特了,死亡之神,這場的杜蘭特超神拿了38分仍是輸給了火箭,天然而然就是討論他最多了。還有就是這場站出來的塔克,三分6中5,還破了我的季後賽的最高得分,討論他也是很正常的事。還有一個很顯眼的就是第三節,不少人都認爲勇士是「勇三瘋」,覺得這場比賽勇士會在第三節爆發吧?其實這賽季的火箭第三節也是很強的,並不比勇士弱。

完整代碼已經上傳到個人github上了,若是須要的話能夠自行查看,若是以爲程序不錯的話但願能夠給個star哈!

github:https://github.com/SergioJune/gongzhonghao_code

寫在最後

若是這篇文章對你用的話,但願不要吝嗇你的點贊哈!點贊和轉發就是對個人最大支持,這樣纔有動力輸出質量高的原創文章。

「球迷的話點個贊?我看看有多少個是球迷」

推薦文章:

使用requests+BeautifulSoup的簡單爬蟲練習

python爬蟲經常使用庫之requests詳解

平常學python

代碼不止bug,還有美和樂趣

相關文章
相關標籤/搜索