1. 程式人生 > >網易雲音樂綜合爬蟲python庫NetCloud v1版本發布

網易雲音樂綜合爬蟲python庫NetCloud v1版本發布

綜合 name 簡單的 clas pla 參數 mit eve cell

以前寫的太爛了,這次基本把之前的代碼全部重構了一遍。github地址是:NetCloud.下面是簡單的介紹以及quick start.

NetCloud——一個完善的網易雲音樂綜合爬蟲Python庫

目前只需要使用命令pip3 install netcloud 即可以完成模塊的安裝,支持Windows與Linux系統,完全支持python3,不保證兼容python2,所以強烈建議使用python3.代碼github的地址是Netcloud

項目結構:

netcloud/ ├── analyse │
├── crawler │
├── demo │
├── login │
├── test │
└── util - source

netcloud是模塊根目錄

analyse:網易雲音樂評論以及用戶信息可視化分析的模塊

crawler:網易雲音樂評論爬蟲模塊

demo:一些demo

login:網易雲音樂模塊登錄模塊,提供了豐富的網易雲api,包括音樂評論,專輯,歌手等等

test:測試模塊

util:工具類模塊,其中也包括了source目錄,主要存放一些資源文件

快速使用,一些簡單的例子如下(也可以參考demo模塊的demos,或者下面列出的核心api):

  1. 抓取歌手歌曲的熱門評論以及全部評論
from netcloud.crawler.Crawler import NetCloudCrawler
singer_name = "林俊傑"
song_name = "豆漿油條"
nc_crawler = NetCloudCrawler(song_name = song_name,singer_name = singer_name)
# 保存歌手的全部熱門評論
nc_crawler.save_singer_all_hot_comments_to_file()
# 使用多線程(20個線程)保存歌曲的全部評論
nc_crawler.save_all_comments_to_file_by_multi_threading(20)

2.對於歌曲的評論文件以及評論用戶進行可視化分析

from netcloud.analyse.Analyse import NetCloudAnalyse
singer_name = "王力宏"
song_name = "需要人陪"
nc_analyse = NetCloudAnalyse(song_name = song_name,singer_name = singer_name)
# 多線程抓取歌曲評論的全部用戶相關信息並保存到磁盤
nc_analyse.save_all_users_info_to_file_by_multi_threading()
# 進行核心可視化分析,包括用戶屬性分布(年齡,地區,性別等)以及評論時間,關鍵詞分布等),
# 生成的html文件可以在瀏覽器打開查看
nc_analyse.core_visual_analyse()

3.模擬登錄網易雲音樂,並嘗試一些api

from netcloud.login.Login import NetCloudLogin
# 模擬登錄,如果不傳任何參數,則表示從config.xml文件加載登錄信息(用戶名,密碼等)
# 配置文件的默認路徑是:當前登錄用戶home目錄/.NetCloud/config/config.xml
nc_login = NetCloudLogin()
# 也可以顯式傳入用戶名和密碼等登錄信息
#nc_login = NetCloudLogin(phone="xxxxxxxxxxx",password="xxxxxxx",email="xxxxx",rememberLogin=True)
# 打印登錄用戶的朋友動態,結果以json格式展示
print(nc_login.get_friends_event().json())
# 打印自身用戶id
print(nc_login.get_self_id())
# 打印自己收藏的專輯(結果太長,這裏略過)
print(nc_login.get_self_record().json())
# 單線程下載歌單中的全部歌曲到本地
nc_login.download_play_list_songs(2431814627,limit=1000)
# 打印自己的前10條fans信息
print(nc_login.get_self_fans(offset=0,limit=10).json())
  1. 調用login的一些核心api,格式化打印一些信息
from netcloud.login.Printer import NetCloudPrinter
# 同上,可以不傳參數從配置文件加載登錄信息
# 或者也可以顯式傳入登錄參數
nc_printer = NetCloudPrinter()
# 格式化打印搜索api搜索歌手`韓紅`的結果
nc_printer.pretty_print_search_singer(search_singer_name="韓紅")
‘‘‘
2019-01-15 02:56:23,416 - Printer.py[line:246] - INFO: Your search singer name is:韓紅
2019-01-15 02:56:23,417 - Printer.py[line:249] - INFO: Here is your search result(total 1):
2019-01-15 02:56:23,417 - Printer.py[line:251] - INFO: --------------------  search result 1  --------------------
2019-01-15 02:56:23,417 - Printer.py[line:253] - INFO: singer name:韓紅
2019-01-15 02:56:23,418 - Printer.py[line:255] - INFO: alias:
2019-01-15 02:56:23,418 - Printer.py[line:259] - INFO: 
singer id:7891
2019-01-15 02:56:23,418 - Printer.py[line:261] - INFO: singer image url:http://p2.music.126.net/Se3mLHw_oKufAnG7VCka_g==/109951163096672305.jpg
2019-01-15 02:56:23,418 - Printer.py[line:263] - INFO: singer mv count:20
2019-01-15 02:56:23,418 - Printer.py[line:265] - INFO: singer album count:43
‘‘‘
# 格式化打印自己的信息
nc_printer.pretty_print_self_info()
‘‘‘
2019-01-15 03:33:21,658 - Printer.py[line:57] - INFO: Hello,Lyrichu!
Here is your personal info:
2019-01-15 03:33:21,659 - Printer.py[line:74] - INFO: avatarUrl:http://p2.music.126.net/OkEDo-a_rHCC1zEDbg7dYg==/8003345140341032.jpg
signature:熱愛生活,熱愛音樂!
nickname:Lyrichu
userName:[email protected]
province_id:420000
birthday:1995-02-12
description:
gender:male
userId:44818930
cellphone:xxxxxxx
email:[email protected]
‘‘‘

詳細介紹請去github NetCloud,歡迎star & fork & pr.

網易雲音樂綜合爬蟲python庫NetCloud v1版本發布