欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

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

系統(tǒng) 2182 0

前言

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

前兩天有時間調整了一下,做了幾方面的改進:

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

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

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

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

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

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

運行流程

1.首先由spiderMan.py進入主程序,開始運行。

2.主程序將控制權交給dispatcher調度程序,調度程序首先登錄百度。

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

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

整個過程如下圖:

基于python實現(xiàn)的百度音樂下載器python pyqt改進版(附代碼)_第1張圖片

正常運行后的效果如下圖:

基于python實現(xiàn)的百度音樂下載器python pyqt改進版(附代碼)_第2張圖片

問題:

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

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

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

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

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

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

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

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

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

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

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

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。


更多文章、技術交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日本不卡一区二区三区在线观看 | 国产毛片视频 | 亚洲在线视频网站 | 亚洲国产精品第一页 | 日本一区午夜爱爱 | 日日干天天摸 | 日韩福利视频 | 久久久99精品免费观看精品 | 国产精品国产成人国产三级 | 成人免费观看网欧美片 | 欧美亚洲精品在线 | 33eee在线视频免费观看 | 狠狠色欧美亚洲狠狠色五 | 99久久精品国产片 | 日韩精品一区二区三区在线播放 | 精品视频一区二区三区在线观看 | 国产欧美精品一区二区三区 | 精品久久久久久国产 | 日韩三级在线播放 | 欧美成人手机在线 | 精品亚洲福利一区二区 | 国产小视频福利 | 欧美日韩中文字幕 | 欧美福利 | 在线观看亚洲专区 | 日韩黄色影视 | 奇米777四色影视在线看 | 久久亚洲国产 | 日产一卡二卡乱码免费 | 亚洲免费一区 | 欧美午夜视频一区二区三区 | 欧美一区二区三区视频 | 97超视频在线观看 | 爱高潮www亚洲精品 亚洲精品免费网站 | 亚洲综合精品成人 | 久久国产视频网 | 日本不卡一区在线 | 欧美日韩精品一区二区三区视频 | 午夜影院在线看 | 国产精品久久久久无码av | 亚洲123|