国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

用python實現的百度新歌榜、熱歌榜下載器

2019-11-14 17:45:06
字體:
來源:轉載
供稿:網友

首先聲明,本工具僅僅為學習之用,不涉及版權問題,因為百度音樂里面的歌曲本身是可以下載的,而且現在百度也提供了”百度音樂播放器”,可以通過這個工具進行批量下載。

我當時做這個工具的時候,百度還沒有提供”百度音樂播放器”,而我又想批量下載,所以做了這樣的一個下載工具。當然,主要還是為了學習。

工具采用Python2.7.3+PyQt開發。

功能:

1.集中展示百度新歌榜或熱歌榜可下載的歌單。

2.支持單個、多個歌曲的下載。

3.可復制歌單中所有的鏈接內容,方便在迅雷等下載工具中創建下載組。

缺陷:

目前采用單線程,效率不高,UI界面容易假死。

本工具運行流程:

1.模擬用戶登錄百度。

2.若登錄成功,采集并解析頁面內容,加載歌單列表。

3.用戶點擊下載按鈕或者批量下載按鈕后,下載歌曲。

 

image

使用方法:

1.在配置文件setting.py的最后,配置可登錄百度的賬號和密碼,及百度熱歌榜或新歌榜的URL.

username = "your baidu acount"    #配置你的百度賬號passWord = "your baidu password"  #配置你的百度密碼musiclistUrl = "http://music.baidu.com/top/dayhot"  #   http://music.baidu.com/top/new

2.直接運行mainWindow.py文件即可,如果網速不給力的話可能要等上3、4分鐘。

運行后如圖:

QQ圖片20140610153609

 

 

用到的知識:

1.首先用到了PyQt的GUI編程,窗體布局及QTableWidget、QPRogressBar、QPushButton等控件及控件的重寫

2.用到了網絡編程的部分內容,利用urllib,urllib2,cookielib請求網頁,模擬登錄百度。

3.利用HTMLParser解析網頁內容,匹配網頁元素。

4.利用codecs進行文件的讀寫。

 

遇到的問題:

1.編碼問題,由于在創建文件時將文件編碼設置為UTF-8,當需要向文件寫入的內容為中文等非ASCII碼內容時,總是提示編碼問題。其實,百度音樂的網頁全部為UTF-8格式,因此從網頁中獲取的內容也是UTF-8格式,但是,要講內容寫入UTF-8的文本中,必須將網頁內容進行decode(“utf8”)解碼為unicode格式,才能正常寫入。

檢測內容編碼,可以用chardet模塊的chardet.detect(“內容”)的方法。

另外,HTMLParser解析網頁內容過程中,有的下載頁面會出現問題,根據提示信息發現還是編碼問題,將feed()方法中的內容參數進行decode(“utf8”)后,結果正常。

decode將內容根據參數內容解碼為unicode類型,具體要根據所采集的頁面的編碼。

 

github下載地址:點這里


上一篇:django表單

下一篇:django站點管理

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乌拉特前旗| 奉节县| 衡南县| 澜沧| 宁陕县| 辉县市| 六枝特区| 临清市| 洪雅县| 石棉县| 樟树市| 清涧县| 准格尔旗| 上栗县| 元江| 曲沃县| 东兰县| 古蔺县| 富锦市| 会东县| 牟定县| 阿鲁科尔沁旗| 和平县| 本溪市| 乌兰浩特市| 临颍县| 宜丰县| 贡山| 廉江市| 内乡县| 哈巴河县| 育儿| 喜德县| 承德县| 梁河县| 黄浦区| 绿春县| 邻水| 大田县| 南京市| 沈丘县|