Ⅰ 網易雲有什麼可以抑鬱的歌
音樂專題
這兩天,華晨宇的新歌《好想愛這個世界啊》首發上線,網易雲音樂後台熱度成倍速暴漲。
這首歌是他專門為抑鬱症患者所創作的,歌詞讓人淚目:
「想過離開,
以這種方式存在是因為,
那些旁白,那些姿態,
那些傷害不想離開,
當你說還有你在
忽然我開始莫名期待夕陽西下,
翻著電話,
無人撥打是習慣孤獨的我該得到的吧…」
當日歌曲銷量突破500萬張,樂評突破15萬! 歌曲在刷新多項平台紀錄的同時,也喚起大家對抑鬱症群體的關愛。
網易雲音樂用戶紛紛留下真摯評論,直言被感動:
心一次次的破碎,就是為了把心打開。
這個周末,不是要和大家談論抑鬱症,只和大家分享幾首音樂。
貝多芬曾說,音樂是比一切智慧一切哲學更高的啟示,誰能滲透音樂的意義,便能超脫尋常人無以自拔的苦難。
曾被抑鬱症困擾的央視主播蔣術說:在人生每一處狹小逼仄的入口,每一個幽暗昏茫的低谷,我們都可以追尋心靈中那束微光。
而音樂有時就像是茫茫大海中的那盞燈塔,為你指引著方向。
《春的臨終》
程璧的這首小眾歌曲,根據日本詩人谷川俊太郎的詩歌改編:
我把活著喜歡過了
先睡覺吧 小鳥們
我把活著喜歡過了
因為遠處有呼喚我的東西
我把悲傷喜歡過了
我把笑喜歡過了
像穿破的鞋子
是的
因為我把憤怒喜歡過了
谷川是日本的國寶級詩人,他曾說:「靈魂在這個世上的故鄉是音樂」。他在開頭寫道, 「我把活著喜歡過了」,這種特殊的表達句式,溫柔的勾起了你對生的感激。
活著本是多麼地不容易啊,這是一種面對死亡已經釋然的心態,而這種雲淡風輕又是來自於在活著的有限時間里,認真活過了,才會有的心態。
除了活著,小詩里還把悲傷喜歡過了,把憤怒喜歡過了。這些平時我們極力避免的情緒,都被看見和感激。
甚至有讀者評論,想用「我把活著喜歡過了」,當做自己的墓誌銘。
人生很多滋味都要到一個年紀才懂得去細細品味,比如類似這種與生命相遇的感動和幸福。希望當你懂得的那一天,一切還未走遠。
Ⅱ 蝦米音樂2月5日0點起停止音樂服務,為什麼蝦米音樂生存不下去
2006年,一群喜歡音樂的愛好者在一家小咖啡館內建立了蝦米音樂,他們希望用自己獨特的方式去為更多的音樂人和聽眾服務,2008年,蝦米音樂網正式與大家見面,然而,在度過漫長的12年後,蝦米音樂宣布將於2021年2月5日0點起停止音樂服務,事實證明,沒有什麼是可以永垂不朽的,即使是在2013年累計注冊用戶已經超過2,000萬的蝦米音樂也無力阻擋。
再加上2015年的時候,國家版權局頒布了禁止各大網路音樂服務平台轉播未經授權的音樂作品的版權令之後,蝦米音樂想要賺錢就更是難上加難了。行業之間為音樂版權發起來的競爭成了蝦米音樂關停的重要原因。其實,不僅僅是蝦米音樂,網易雲音樂也同樣面臨的和蝦米音樂一樣的困境。總而言之,蝦米音樂曾經給用戶帶來很多美好的回憶,但是,蝦米音樂不可能永遠引領音樂未來的發展,它的落寞只是時代的無奈。
Ⅲ 有沒有易懂的 python 多線程爬蟲代碼
Python 在程序並行化方面多少有些聲名狼藉。撇開技術上的問題,例如線程的實現和 GIL1,我覺得錯誤的教學指導才是主要問題。常見的經典 Python 多線程、多進程教程多顯得偏「重」。而且往往隔靴搔癢,沒有深入探討日常工作中最有用的內容。
傳統的例子
簡單搜索下「Python 多線程教程」,不難發現幾乎所有的教程都給出涉及類和隊列的例子:
#Example.py'''
Standard Procer/Consumer Threading Pattern
'''import time
import threading
import Queue
class Consumer(threading.Thread):
def __init__(self, queue):
threading.Thread.__init__(self)
self._queue = queue
def run(self):
while True:
# queue.get() blocks the current thread until
# an item is retrieved.
msg = self._queue.get()
# Checks if the current message is
# the "Poison Pill"
if isinstance(msg, str) and msg == 'quit': # if so, exists the loop
break
# "Processes" (or in our case, prints) the queue item
print "I'm a thread, and I received %s!!" % msg # Always be friendly!
print 'Bye byes!'def Procer():
# Queue is used to share items between
# the threads.
queue = Queue.Queue() # Create an instance of the worker
worker = Consumer(queue) # start calls the internal run() method to
# kick off the thread
worker.start()
# variable to keep track of when we started
start_time = time.time()
# While under 5 seconds..
while time.time() - start_time < 5:
# "Proce" a piece of work and stick it in
# the queue for the Consumer to process
queue.put('something at %s' % time.time()) # Sleep a bit just to avoid an absurd number of messages
time.sleep(1) # This the "poison pill" method of killing a thread.
queue.put('quit') # wait for the thread to close down
worker.join()if __name__ == '__main__':
Procer()
哈,看起來有些像 Java 不是嗎?
我並不是說使用生產者/消費者模型處理多線程/多進程任務是錯誤的(事實上,這一模型自有其用武之地)。只是,處理日常腳本任務時我們可以使用更有效率的模型。
問題在於…
首先,你需要一個樣板類;
其次,你需要一個隊列來傳遞對象;
而且,你還需要在通道兩端都構建相應的方法來協助其工作(如果需想要進行雙向通信或是保存結果還需要再引入一個隊列)。
worker 越多,問題越多
按照這一思路,你現在需要一個 worker 線程的線程池。下面是一篇 IBM 經典教程中的例子——在進行網頁檢索時通過多線程進行加速。
#Example2.py'''
A more realistic thread pool example
'''import time
import threading
import Queue
import urllib2
class Consumer(threading.Thread):
def __init__(self, queue):
threading.Thread.__init__(self)
self._queue = queue
def run(self):
while True:
content = self._queue.get()
if isinstance(content, str) and content == 'quit': break
response = urllib2.urlopen(content) print 'Bye byes!'def Procer():
urls = [ 'http', 'httcom'
'ala.org', 'hle.com'
# etc..
]
queue = Queue.Queue()
worker_threads = build_worker_pool(queue, 4)
start_time = time.time() # Add the urls to process
for url in urls:
queue.put(url)
# Add the poison pillv
for worker in worker_threads:
queue.put('quit') for worker in worker_threads:
worker.join() print 'Done! Time taken: {}'.format(time.time() - start_time)def build_worker_pool(queue, size):
workers = [] for _ in range(size):
worker = Consumer(queue)
worker.start()
workers.append(worker) return workersif __name__ == '__main__':
Procer()
這段代碼能正確的運行,但仔細看看我們需要做些什麼:構造不同的方法、追蹤一系列的線程,還有為了解決惱人的死鎖問題,我們需要進行一系列的 join 操作。這還只是開始……
至此我們回顧了經典的多線程教程,多少有些空洞不是嗎?樣板化而且易出錯,這樣事倍功半的風格顯然不那麼適合日常使用,好在我們還有更好的方法。
何不試試 map
map 這一小巧精緻的函數是簡捷實現 Python 程序並行化的關鍵。map 源於 Lisp 這類函數式編程語言。它可以通過一個序列實現兩個函數之間的映射。
urls = ['ho.com', 'htdit.com']
results = map(urllib2.urlopen, urls)
上面的這兩行代碼將 urls 這一序列中的每個元素作為參數傳遞到 urlopen 方法中,並將所有結果保存到 results 這一列表中。其結果大致相當於:
results = []for url in urls:
results.append(urllib2.urlopen(url))
map 函數一手包辦了序列操作、參數傳遞和結果保存等一系列的操作。
為什麼這很重要呢?這是因為藉助正確的庫,map 可以輕松實現並行化操作。
在 Python 中有個兩個庫包含了 map 函數: multiprocessing 和它鮮為人知的子庫 multiprocessing.mmy.
這里多扯兩句: multiprocessing.mmy? mltiprocessing 庫的線程版克隆?這是蝦米?即便在 multiprocessing 庫的官方文檔里關於這一子庫也只有一句相關描述。而這句描述譯成人話基本就是說:"嘛,有這么個東西,你知道就成."相信我,這個庫被嚴重低估了!
mmy 是 multiprocessing 模塊的完整克隆,唯一的不同在於 multiprocessing 作用於進程,而 mmy 模塊作用於線程(因此也包括了 Python 所有常見的多線程限制)。
所以替換使用這兩個庫異常容易。你可以針對 IO 密集型任務和 CPU 密集型任務來選擇不同的庫。2
動手嘗試
使用下面的兩行代碼來引用包含並行化 map 函數的庫:
from multiprocessing import Poolfrom multiprocessing.mmy import Pool as ThreadPool
實例化 Pool 對象:
pool = ThreadPool()
這條簡單的語句替代了 example2.py 中 build_worker_pool 函數 7 行代碼的工作。它生成了一系列的 worker 線程並完成初始化工作、將它們儲存在變數中以方便訪問。
Pool 對象有一些參數,這里我所需要關注的只是它的第一個參數:processes. 這一參數用於設定線程池中的線程數。其默認值為當前機器 CPU 的核數。
一般來說,執行 CPU 密集型任務時,調用越多的核速度就越快。但是當處理網路密集型任務時,事情有有些難以預計了,通過實驗來確定線程池的大小才是明智的。
pool = ThreadPool(4) # Sets the pool size to 4
線程數過多時,切換線程所消耗的時間甚至會超過實際工作時間。對於不同的工作,通過嘗試來找到線程池大小的最優值是個不錯的主意。
創建好 Pool 對象後,並行化的程序便呼之欲出了。我們來看看改寫後的 example2.py
import urllib2
from multiprocessing.mmy import Pool as ThreadPool
urls = [ 'httorg',
'hon.org/about/',
'hnlamp.com/pub/a/python/2003/04/17/metaclasses.html',
# etc..
]
# Make the Pool of workers
pool = ThreadPool(4)
# Open the urls in their own threads
# and return the results
results = pool.map(urllib2.urlopen, urls)
#close the pool and wait for the work to finish
pool.close()
pool.join()
實際起作用的代碼只有 4 行,其中只有一行是關鍵的。map 函數輕而易舉的取代了前文中超過 40 行的例子。為了更有趣一些,我統計了不同方法、不同線程池大小的耗時情況。
# results = [] # for url in urls:# result = urllib2.urlopen(url)# results.append(result)# # ------- VERSUS ------- # # # ------- 4 Pool ------- # # pool = ThreadPool(4) # results = pool.map(urllib2.urlopen, urls)# # ------- 8 Pool ------- # # pool = ThreadPool(8) # results = pool.map(urllib2.urlopen, urls)# # ------- 13 Pool ------- # # pool = ThreadPool(13) # results = pool.map(urllib2.urlopen, urls)
結果:
# Single thread: 14.4 Seconds # 4 Pool: 3.1 Seconds# 8 Pool: 1.4 Seconds# 13 Pool: 1.3 Seconds
很棒的結果不是嗎?這一結果也說明了為什麼要通過實驗來確定線程池的大小。在我的機器上當線程池大小大於 9 帶來的收益就十分有限了。
Ⅳ python 爬取蝦米音樂是怎麼個思路
你選XHR幹嘛?選Media啊就看見了。
Ⅳ 誰知道蝦米網試聽的音樂緩存在哪裡
蝦米音樂中緩存的音樂目錄可以通過以下方法找到:
1、在電腦桌面上找到蝦米音樂的選項,點擊進入蝦米音樂的主界面。
Ⅵ 蝦米音樂要關停了,原因是什麼
蝦米音樂發布官方聲明,蝦米音樂播放器停止服務。官方稱,蝦米音樂未來將轉向更多音樂商業場景服務,將依託新成立的『音螺』平台持續探索創新,服務音樂人及業內合作夥伴。蝦米關停之前早有傳聞,這次終於成真,諸多樂迷表示難舍,蝦米音樂創始人南瓜之前受訪時曾表示,蝦米關停是意料之中的事,他也引述他人觀點「蝦米音樂是死在太多人不在乎上面」。
蝦米員工的特別留言。
蝦米的創始人南瓜在前段時間接受采訪時曾說,「蝦米音樂是死在太多人不在乎上面」,樂迷出身的他希望蝦米可以在互聯網上更透明地幫助獨立音樂人,使用戶和內容方站在一個戰線上,平台和內容可以互相促進。但後來版權大戰開始之後這些模式都不管用了,並慢慢演變成了一個砸錢的游戲,「版權方掌握著游戲的玩法,各大音樂平台陷入了版權游戲的漩渦,擁有著微乎其微的話語權,非常被動」。隨著資本不再在乎音樂本身,只在乎能否獲得流量;內容公司不在乎內容本身,只在乎盈利;用戶不在乎自己想聽什麼,被束縛進了「信息繭房」,早前已經離開蝦米音樂的南瓜認為蝦米關停是意料之中的事情。
對於最終關停,蝦米音樂的另一位創始人朱七對南都記者表示不願多談,「這種東西一落筆一張嘴太傷神傷心了,也很難冷靜對待」。朱七早前在自己的個人專輯《書名號》文案中說了一句「我做了一件雖然最後認了輸仍心存驕傲的事業」,他曾說自己是「認了輸的人」,蝦米音樂的創業投入了太大的情感和夢想,但可能和能力有關,也可能和時勢有關。
蝦米關停的各種網路傳聞,南都記者追訪曾經擔任阿里音樂CEO的宋柯,沒有得到回應。蝦米音樂最終也像曾經的千千靜聽等音樂平台一樣從眾多音樂愛好者的生活中消失,成為一代人的回憶。在感到不舍和惋惜的同時,中國音樂市場的運作模式和音樂平台的生存之道也引人思考。
Ⅶ 蝦米音樂無法播放 本來是已下載的音樂無法播放,如下圖。想重新下載,顯示已下載。求解決方法
手機——應用管理——已下載中找到蝦米音樂,按清除數據,就會把蝦米的應用痕跡都刪掉。然後可以重新下載。我也是和你一樣情況,音樂丟失,但顯示已下載。親測有效。
建議清數據前先把歌單截圖,因為清了之後啥都沒了。
Ⅷ 蝦米音樂已正式關閉,有什麼辦法能恢復正常播放嗎
在3月5號的時候,蝦米音樂正式宣布關服停運12年的陪伴終究換來了離開。
下面音樂從曾經的一個音樂巨頭到達現在的落寞不堪,這其中讓非常多的人意識到他真的是消失了,不再是曾經那麼一個音樂領頭者。更有很多網友聲稱我的青春結束了。這個時候就有很多人想知道,既然已經正式關閉,有什麼辦法恢復它的正常播放嗎?
一、蝦米音樂正式關閉是怎麼回事?
在1月5號的時候,蝦米音樂就有聲稱說將停服關閉。2月5日正式關停,到達3月5日的時候只有一個網頁。其實它停運的主要原因還是因為業務的調整,不得不做出這樣的選擇。而且現在各大音樂軟體的石頭放在了一起,幾乎把所有的音樂版權全部攬獲於自己的手中,像蝦米音樂這些軟體,其實在這方面已經有非常大的發展,阻礙未來的發展道路,更是苦不堪言,因此他們選擇了其他的一些關於音樂的運營方面,停止了下面音樂的運轉。
高度發展的社會就是如此一些被淘汰的軟體,雖然是很多人的青春,但是因為制度下不允許他們存活,他們必須選擇新的經營方式,雖然蝦米音樂下降了,但是實際上他並沒有倒閉,只是選擇改變自己的一個發展路線,因此我們也不必有過多的感慨,這是很正常的。
Ⅸ python開發的gui漂亮嗎
簡單一點的,玩tkinter
你要做產品,pyQT(pySide)
其他的雖然也有一些,但靠譜的並不多.
如果說好看 當然是pyQT的好看
Ⅹ 蝦米音樂的軟體功能有哪些
你好,這是蝦米更新版本中的內容
1、蝦米音樂客戶端真正的高品質保證,450萬首歌曲,每首音質都經過軟體頻譜分析和編輯人工監聽審核;
2、實用的無線雲推送,可以將蝦米網任意歌曲無線發送到手機,媲美蘋果iCloud收費音樂服務;
3、最自由的聽歌體驗,500多萬張由音樂達人製作的絕贊精選集,滿足千奇百怪的聽歌愛好;
4、貼心的私人音樂庫,收藏歌曲,蝦米網所有產品都將為你無縫同步,把喜歡的歌隨身攜帶;
5、離線下載節省流量,將常聽的歌曲下載到手機,沒有網路一樣聽;
6、最權威的音樂曲庫,10多萬超資深用戶編輯海量音樂資料和曲庫,更准確專業;
7、精準的推薦演算法,擁有中國最先進的音樂推薦引擎技術,電台漫遊給你推薦相似歌曲。
不過蝦米的UI真的簡潔好看,好的用戶體驗設計會很吸引固定客群,現在一般的UI設計都會用到SKETCH、AXURE、藍湖設計協作平台進行在線需求評審、文檔管理以及自動標注信息和在線切圖,為設計師們節省了很多時間,有了更多的時間琢磨好的設計了。