欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于python實現(xiàn)的百度音樂下載器python pyqt改進(jìn)版(附代碼)

 更新時間:2019年08月05日 10:05:05   作者:風(fēng)的姿態(tài)  
這篇文章主要介紹了基于python實現(xiàn)的百度音樂下載器python pyqt改進(jìn)版(附代碼),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

前言

之前寫過一個用python實現(xiàn)的百度新歌榜、熱歌榜下載器的文章,實現(xiàn)了百度新歌、熱門歌曲的爬取與下載。但那個采用的是單線程,網(wǎng)絡(luò)狀況一般的情況下,掃描前100首歌的時間大概得到40來秒。而且用Pyqt做的界面,在下載的過程中進(jìn)行窗口操作,會出現(xiàn)UI阻塞的現(xiàn)象。

前兩天有時間調(diào)整了一下,做了幾方面的改進(jìn):

1.修改了UI界面阻塞的問題,下載的過程中可以進(jìn)行其它的UI操作;

2.爬蟲程序采用一個主線程,8個子線程的方式快速爬取,網(wǎng)絡(luò)狀況一致的情況下,將掃描100首歌曲的時間提高到了8、9秒左右;(本地下載速度大概300K左右)

3.解析網(wǎng)頁的方法由之前的HtmlParser變成了現(xiàn)在的BeautifulSoup;

要運(yùn)行此功能需要安裝PyQt、BeautifulSoup。運(yùn)行之前需要在settings.py文件中配置百度賬號和密碼。

username = "your baidu acount" #配置你的百度賬號 
password = "your baidu password" #配置你的百度密碼 

配置好賬戶和密碼后,直接雙擊spiderMan.py文件運(yùn)行即可。

運(yùn)行流程

1.首先由spiderMan.py進(jìn)入主程序,開始運(yùn)行。

2.主程序?qū)⒖刂茩?quán)交給dispatcher調(diào)度程序,調(diào)度程序首先登錄百度。

3.如果登錄成功,調(diào)度程序開啟8個子線程,由這8個子線程抓取百度新歌榜或百度熱歌榜的歌曲鏈接,分析鏈接,獲取真正的下載地址,并將下載地址、歌曲名稱、歌手信息寫入一個文本文件。

4.當(dāng)子線程執(zhí)行完畢,主程序讀取上一步生成的文本文件,加載UI窗體。

整個過程如下圖:

正常運(yùn)行后的效果如下圖:

問題:

在github上tigerstudent提出了兩個問題:

1.文件spiderMan.py中獲取當(dāng)前腳本所在的目錄 root = os.path.dirname(__file__)+"/" 獲取到的目錄為空,建議應(yīng)該用os.getcwd()。

這里我實際想要的是當(dāng)前腳本所在的絕對路徑,正確的腳本應(yīng)該是這樣的:os.path.abspath(os.path.dirname(__file__))+"/"

那么為什么os.path.dirname(__file__)os.getcwd()為什么都不行呢?os.path.dirname(__file__)是當(dāng)前腳本相對于腳本的執(zhí)行目錄的相對路徑,而os.getcwd()是腳本實際執(zhí)行的目錄。新建test.py文件,代碼如下:

import os 
print("os.path.dirname(__file__):"+os.path.dirname(__file__)) 
print("os.getcwd():"+os.getcwd()) 

首先定位到計算機(jī)根目錄/,執(zhí)行如下命令:python /home/fengzheng/vimPython/BaiduMusicSpider-master/test.py,輸出結(jié)果:

os.path.dirname(__file__):/home/fengzheng/vimPython/BaiduMusicSpider-master 
os.getcwd(): 

 定位到/home/fengzheng/vimPython/,執(zhí)行如下命令:python BaiduMusicSpider-master/test.py,輸出結(jié)果:

os.path.dirname(__file__):BaiduMusicSpider-master 
os.getcwd():/home/fengzheng/vimPython 

這樣說吧,拋開執(zhí)行上的參數(shù)值,在windows下把命令理解為單擊鼠標(biāo)直接運(yùn)行的操作,os.path.dirname(__file__)就是所執(zhí)行的腳本文件對于當(dāng)前所處的目錄的相對路徑,而os.getcwd()就是當(dāng)前執(zhí)行這個腳本所在的路徑,即在哪個位置執(zhí)行就是那個位置的路徑。

2.有一些路徑字符串中用的是”\”,正確的寫法應(yīng)該是”/”,因為當(dāng)時是在windows上寫的,沒太注意。

github下載地址如下:下載地址

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 一篇文章看懂python如何執(zhí)行cmd命令

    一篇文章看懂python如何執(zhí)行cmd命令

    這篇文章主要給大家介紹了關(guān)于如何通過一篇文章看懂python如何執(zhí)行cmd命令的相關(guān)資料,在Python中可以使用多種方法執(zhí)行cmd命令,文中通過代碼示例將每種方法都介紹的非常詳細(xì),需要的朋友可以參考下
    2023-09-09
  • 使用Python批量移除Word文檔水印的代碼示例

    使用Python批量移除Word文檔水印的代碼示例

    移除Word文檔中的水印可以減少不必要的麻煩,通過使用Python這樣的編程語言,我們可以輕松實現(xiàn)自動化操作,高效地移除Word文檔中的水印,確保文檔的專業(yè)性和準(zhǔn)確性,本文將介紹如何使用Python批量移除Word文檔中的水印
    2024-07-07
  • python 截取XML中bndbox的坐標(biāo)中的圖像,另存為jpg的實例

    python 截取XML中bndbox的坐標(biāo)中的圖像,另存為jpg的實例

    這篇文章主要介紹了python 截取XML中bndbox的坐標(biāo)中的圖像,另存為jpg的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Python打包成exe文件的詳細(xì)操作指南

    Python打包成exe文件的詳細(xì)操作指南

    Python越來越被大家所關(guān)注,隨著越來越多的人開始學(xué)習(xí)Python代碼大家其實或多或少都會遇到一些問題,下面這篇文章主要給大家介紹了關(guān)于Python打包成exe文件的詳細(xì)操作,需要的朋友可以參考下
    2022-06-06
  • Python中弱引用的神奇用法與原理詳解

    Python中弱引用的神奇用法與原理詳解

    弱引用在很多語言中都存在,最常用來解決循環(huán)引用問題,下面這篇文章主要給大家介紹了關(guān)于Python中弱引用的神奇用法與原理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • 基于python實現(xiàn)在excel中讀取與生成隨機(jī)數(shù)寫入excel中

    基于python實現(xiàn)在excel中讀取與生成隨機(jī)數(shù)寫入excel中

    最近接個項目,項目要求是這樣的:在一份已知的excel表格中讀取學(xué)生的學(xué)號與姓名,再將這些數(shù)據(jù)放到新的excel表中的第一列與第二列,最后再生成隨機(jī)數(shù)作為學(xué)生的考試成績,具體實現(xiàn)代碼大家參考下本文
    2018-01-01
  • 使用Python創(chuàng)建快捷方式管理應(yīng)用

    使用Python創(chuàng)建快捷方式管理應(yīng)用

    在Windows系統(tǒng)中,快速訪問常用程序通常通過“開始菜單”中的“應(yīng)用熱門”功能實現(xiàn),在這篇博客中,我將向你展示如何使用Python和wxPython創(chuàng)建一個GUI應(yīng)用,幫助用戶輕松將桌面上的快捷方式添加到Windows“開始菜單”的“應(yīng)用熱門”中,需要的朋友可以參考下
    2024-08-08
  • Python數(shù)據(jù)庫sqlite3圖文實例詳解

    Python數(shù)據(jù)庫sqlite3圖文實例詳解

    SQLite是一個進(jìn)程內(nèi)的庫,實現(xiàn)了自給自足的、無服務(wù)器的、零配置的、事務(wù)性的SQL數(shù)據(jù)庫引擎,下面這篇文章主要給大家介紹了關(guān)于Python數(shù)據(jù)庫sqlite3的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • 聊聊python 邏輯運(yùn)算及奇怪的返回值(not,and,or)問題

    聊聊python 邏輯運(yùn)算及奇怪的返回值(not,and,or)問題

    在Python中,真值為假的對象,包括False,None,數(shù)字0,空字符串以及空的容器類型,除此以外的任何對象均為真,本文重點給大家介紹python 邏輯運(yùn)算及奇怪的返回值(not,and,or)問題,感興趣的朋友一起看看吧
    2022-03-03
  • python函數(shù)局部變量用法實例分析

    python函數(shù)局部變量用法實例分析

    這篇文章主要介紹了python函數(shù)局部變量用法,較為詳細(xì)的分析了Python局部變量的原理與使用技巧,并對比分析了局部變量與global全局變量的用法區(qū)別,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-08-08

最新評論