精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Python Selenium爬蟲實(shí)現(xiàn)歌曲免費(fèi)下載

開發(fā) 后端
selnium是一款很強(qiáng)大的瀏覽器自動(dòng)化測(cè)試框架,直接運(yùn)行在瀏覽器端,模擬用戶操作,目前selenium支持包括IE,Firefox,Chrome等主流瀏覽器及PhantomJS之類的無頭瀏覽器,selenium+phantomjs也是現(xiàn)在很火的一個(gè)爬蟲框架。

[[207757]]

最近發(fā)現(xiàn)越來越多的歌曲下載都需要繳費(fèi)了,對(duì)維護(hù)正版是好事。但有的時(shí)候也想鉆個(gè)空子,正好最近在學(xué)習(xí)python,隨手寫了一個(gè)建議爬蟲,用來爬取某播放軟件的在線音樂。

主要思路就是爬取播放頁(yè)里的播放源文件的url,程序可以讀取用戶輸入并返回歌單,,,因?yàn)樵诰€網(wǎng)站包含大量js,requests就顯得很無奈,又懶得手動(dòng)解析js,于是寄出selenium大殺器。

selnium是一款很強(qiáng)大的瀏覽器自動(dòng)化測(cè)試框架,直接運(yùn)行在瀏覽器端,模擬用戶操作,目前selenium支持包括IE,Firefox,Chrome等主流瀏覽器及PhantomJS之類的無頭瀏覽器,selenium+phantomjs也是現(xiàn)在很火的一個(gè)爬蟲框架。

代碼不長(zhǎng),做的有些簡(jiǎn)陋,以后可以加個(gè)GUI。。。。

步驟一:

進(jìn)入酷狗主頁(yè),F(xiàn)12查看元素,,通過selenium.webdriver的send_keys()方法給send_input類傳參,即用作用戶的輸入,然后通webdriver.click()方法點(diǎn)擊搜索按鈕,得到搜索結(jié)果列表。這里會(huì)有一個(gè)js重定向,通過webdriver.current_ur就可以了,,切記一點(diǎn)!傳入的參數(shù)需要經(jīng)過unicode編碼(.decode(‘gb18030′))效果一樣),否則如果有中文會(huì)亂碼。。(來自被深深困擾的我)

 

步驟二:

查看元素里每首歌的路徑,發(fā)現(xiàn)每首歌的路徑只有<li>不同,于是通過對(duì)li的迭代來獲取每一首歌的xpath,并輸出歌曲名字的元素,然后依舊通過webdriver的click()方法點(diǎn)擊歌曲鏈接,得到歌曲播放頁(yè)面,這里沒有什么難點(diǎn),都是常規(guī)操作。需要注意的是,這里的歌曲鏈接也包含一個(gè)js的重定向,但不一樣的是瀏覽器會(huì)打開一個(gè)新的頁(yè)面(至少火狐會(huì)),可以在click()方法后通過webdriver.switch_to_window()方法跳轉(zhuǎn)到新打開的頁(yè)面

 

步驟三:

進(jìn)入播放頁(yè)面后通過xpath找到播放源文件鏈接(強(qiáng)推firepath,xpath神器啊)但發(fā)現(xiàn)這里依然有一個(gè)js渲染,來生成播放源鏈接,直接提取<src>標(biāo)簽會(huì)顯示為空,于是繼續(xù)webdriver,調(diào)用的瀏覽器會(huì)自動(dòng)解析js腳本,解析完成后提取<src>得到歌曲鏈接,使用urllib的urlretrueve()下載即可

 

代碼如下:

  1. #coding=utf-8 
  2. from selenium.webdriver.remote.webelement import WebElement 
  3. from selenium import webdriver 
  4. from selenium.webdriver import ActionChains 
  5. from selenium.common.exceptions import NoSuchElementException 
  6. from selenium.common.exceptions import StaleElementReferenceException 
  7. from selenium.webdriver.common.desired_capabilities import DesiredCapabilities 
  8. from selenium.webdriver.common.by import By 
  9. import time 
  10. import urllib 
  11.  
  12. #歌曲名 
  13. mname = '' 
  14.  
  15. #JS重定向 
  16. def wait(driver): 
  17.     elem = driver.find_element_by_tag_name('html'
  18.     count = 0 
  19.     while True
  20.         count += 1 
  21.         if count > 20: 
  22.             print('chao shi le'
  23.             return 
  24.         time.sleep(.5) 
  25.         try: 
  26.             elem == driver.find_element_by_tag_name('html'
  27.         except StaleElementReferenceException: 
  28.             return 
  29.  
  30. #獲取url 
  31. def geturl(): 
  32.     input_string = raw_input('>>>please input the search key:'
  33.     driver = webdriver.Chrome() 
  34.     url = 'http://www.kugou.com/' 
  35.     driver.get(url) 
  36.     a=driver.find_element_by_xpath('html/body/div[1]/div[1]/div[1]/div[1]/input') #輸入搜索內(nèi)容 
  37.     a.send_keys(input_string.decode('gb18030')) 
  38.     driver.find_element_by_xpath('html/body/div[1]/div[1]/div[1]/div[1]/div/i').click() #點(diǎn)擊搜索 
  39.     result_url = driver.current_url 
  40.     driver.quit() 
  41.     return result_url 
  42.  
  43.  
  44. #顯示搜索結(jié)果 
  45. def show_results(url): 
  46.     driver = webdriver.Chrome() 
  47.     driver.get(url) 
  48.     time.sleep(3) 
  49.     for i in range(1,1000): 
  50.         try: 
  51.             print '%d. '%i + driver.find_element_by_xpath(".//*[@id='search_song']/div[2]/ul[2]/li[%d]/div[1]/a"%i).get_attribute('title')  #獲取歌曲名 
  52.         except NoSuchElementException as msg: 
  53.             break 
  54.     choice = input(">>>Which one do you want(you can input 'quit' to goback(帶引號(hào))):"
  55.     if choice == 'quit':   #從下載界面退回 
  56.         result = 'quit' 
  57.     else
  58.         global mname 
  59.         mname = driver.find_element_by_xpath(".//*[@id='search_song']/div[2]/ul[2]/li[%d]/div[1]/a"%choice).get_attribute('title'
  60.         a = driver.find_element_by_xpath(".//*[@id='search_song']/div[2]/ul[2]/li[%d]/div[1]/a"%choice) 
  61.         actions = ActionChains(driver) 
  62.         actions.move_to_element(a) 
  63.         actions.click(a) 
  64.         actions.perform() 
  65.         #wait(driver) 
  66.         driver.switch_to_window(driver.window_handles[1])  #跳轉(zhuǎn)到新打開的頁(yè)面 
  67.         result = driver.find_element_by_xpath(".//*[@id='myAudio']").get_attribute('src') #獲取播放元文件url 
  68.         driver.quit() 
  69.     return result 
  70.  
  71.  
  72. #下載回調(diào) 
  73. def cbk(a, b, c): 
  74.     per = 100.0 * a * b / c   
  75.     if per > 100: 
  76.         per = 100 
  77.     print '%.2f%%' % per 
  78.      
  79.  
  80. def main(): 
  81.     print'***********************歡迎使用GREY音樂下載器********************************' 
  82.     print'                                                      directed by GreyyHawk' 
  83.     print'**************************************************************************' 
  84.     time.sleep(1) 
  85.     while True
  86.         url = geturl() 
  87.         result = show_results(url) 
  88.         if result == 'quit'
  89.             print'\n' 
  90.             continue 
  91.         else
  92.             local = 'd://%s.mp3'%mname 
  93.             print 'download start' 
  94.             time.sleep(1) 
  95.             urllib.urlretrieve(result, local, cbk) 
  96.             print 'finish downloading %s.mp3'%mname + '\n\n' 
  97.  
  98.  
  99.  
  100. if __name__ == '__main__'
  101.   main()    

效果: 

 

總結(jié):

當(dāng)網(wǎng)頁(yè)包含大量js的時(shí)候,selenium就會(huì)非常的方便,但經(jīng)過實(shí)踐發(fā)現(xiàn)好像phantomjs解析js的效率沒有世紀(jì)瀏覽器的高,還會(huì)出錯(cuò),后來?yè)Q成調(diào)用火狐就好了,,不知道為啥,,也許是臉黑吧,,總之selenium真的是一款非常強(qiáng)大的框架,對(duì)爬蟲有興趣的同學(xué)一定要了解一下。 

責(zé)任編輯:龐桂玉 來源: 36大數(shù)據(jù)
相關(guān)推薦

2021-04-16 08:02:05

Python下載音樂Python基礎(chǔ)

2025-04-22 09:39:46

Python爬蟲網(wǎng)頁(yè)數(shù)據(jù)抓取

2013-09-05 13:52:17

QQ音樂

2017-05-16 15:33:42

Python網(wǎng)絡(luò)爬蟲核心技術(shù)框架

2021-04-01 09:02:38

Python小說下載網(wǎng)絡(luò)爬蟲

2010-03-03 09:30:40

Python實(shí)現(xiàn)網(wǎng)頁(yè)爬

2021-03-30 09:21:09

PythonSeleniumPython爬蟲

2011-11-28 10:44:46

Office 2010下載

2025-04-23 08:35:00

2024-04-30 09:33:00

JavaScriptPythonexecjs

2020-10-13 09:53:51

HarmonyOS入門下載

2011-03-09 10:07:56

網(wǎng)絡(luò)爬蟲Java

2023-12-25 09:52:32

2011-02-21 09:50:35

虛擬機(jī)VirtualB

2009-03-26 08:49:56

微軟Windows 7操作系統(tǒng)

2017-08-09 15:27:33

python爬蟲開發(fā)工具

2012-05-10 13:42:26

Java網(wǎng)絡(luò)爬蟲

2017-06-14 15:20:43

Python爬蟲BeautifulSo

2023-11-27 08:51:46

PythonRequests庫(kù)

2021-11-03 18:01:21

Python爬蟲微信群
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

日韩一区电影| 在线观看视频中文字幕| 无码国模国产在线观看| 一区二区三区四区国产精品| 97av自拍| 人人妻人人爽人人澡人人精品 | 91精品久久久| 成人国产精品视频| 国产精品美女999| 婷婷色中文字幕| 国产精品免费大片| 欧美成人性福生活免费看| av动漫在线观看| 动漫一区在线| 中文av一区特黄| 国产精品欧美久久| 亚洲熟妇av乱码在线观看| 伊人久久婷婷| 日韩一区二区久久久| 精品人妻一区二区三区香蕉| 精品亚洲二区| 欧美写真视频网站| 日韩精品在线中文字幕| 国内精品二区| 欧美三级韩国三级日本三斤在线观看| 欧美日韩一二三四| 日韩av在线网址| 波多野吉衣在线视频| 成人亚洲网站| 日本韩国一区二区三区视频| 亚洲理论电影在线观看| 尤物网址在线观看| 久久免费午夜影院| 国产日韩一区二区三区| 午夜精品久久久久久久99热黄桃| 日产欧产美韩系列久久99| 91成人福利在线| 四虎永久在线精品| 午夜精品999| 久久精品人人做人人爽| 人妻无码一区二区三区免费| 一区二区美女| 国产丝袜一区视频在线观看| 国产午夜在线一区二区三区| 午夜久久av| 51久久夜色精品国产麻豆| 9人人澡人人爽人人精品| 欧美精品激情在线观看| 国产成人精品a视频一区www| www.com黄色片| 欧美黑人粗大| 色狠狠av一区二区三区| 黄色www网站| av手机免费在线观看| 一区二区三区不卡视频在线观看 | 日本黄色www| yiren22亚洲综合| 欧美色欧美亚洲另类二区| 国产无套粉嫩白浆内谢的出处| 欧美粗大gay| 91黄色免费观看| 美女网站色免费| 欧美网站免费| 91精品国产手机| 中文字幕一二三区| 亚洲日本视频在线| 日韩av中文字幕在线免费观看| 国产又黄又粗又猛又爽的视频| 人人香蕉久久| 在线视频免费一区二区| 国产又粗又长免费视频| 一级欧洲+日本+国产| 色综合视频网站| 成人免费看片98欧美| www.五月婷| 欧美天堂亚洲电影院在线观看 | 日韩极品精品视频免费观看| 中文字幕5566| 久久国产亚洲精品| 美日韩精品视频免费看| 国产精选第一页| 天堂一区二区在线免费观看| 国产日韩一区在线| 丰满人妻一区二区三区四区53| aa级大片欧美| 亚洲欧洲国产日韩精品| 四季久久免费一区二区三区四区| 亚洲成av人片一区二区| 免费观看成人在线视频| 国产精品777777在线播放| 日韩免费一区二区三区在线播放| 日本黄色录像片| 日韩毛片视频| 免费91在线视频| 天堂网av手机版| 精品中文av资源站在线观看| 国产伦精品一区二区三区免| 国产日产精品久久久久久婷婷| 亚洲女爱视频在线| 国产aaa一级片| 91视频亚洲| 亚洲国产黄色片| 国产精品久久久免费看| 亚洲网站啪啪| 国产在线播放不卡| 天天操天天干天天插| 久久色在线观看| 亚洲高潮无码久久| 欧美日韩免费观看视频| 欧美成人国产一区二区| 一级片久久久久| 日韩视频中文| 亚洲r级在线观看| 国产女主播在线直播| 亚洲午夜免费视频| 可以看污的网站| 免费成人高清在线视频theav| 久久伊人免费视频| 中文字幕av久久爽| 91在线视频播放地址| 91麻豆天美传媒在线| 久久天堂av| 日韩va亚洲va欧洲va国产| 69av.com| 极品少妇xxxx精品少妇| 欧洲一区二区日韩在线视频观看免费| 9lporm自拍视频区在线| 51精品秘密在线观看| 日韩女同一区二区三区| 午夜影院日韩| 久久青青草综合| 678在线观看视频| 日韩亚洲欧美在线| 成人涩涩小片视频日本| 久久精品二区亚洲w码| 日本免费一区二区三区| 欧美男女交配| 亚洲欧美在线播放| 久久黄色精品视频| 99精品欧美一区二区蜜桃免费 | 亚洲怡红院在线观看| 日本vs亚洲vs韩国一区三区二区| 免费av在线一区二区| 麻豆国产在线| 日韩极品精品视频免费观看| 国产69精品久久久久久久久久| 成人免费视频一区二区| 国产激情片在线观看| 国产精品xnxxcom| 久久久精品国产一区二区| 夜夜狠狠擅视频| 国产精品区一区二区三区| 五月婷婷丁香综合网| 日韩.com| 亚洲在线www| 日本aa在线| 精品国产露脸精彩对白| 日本少妇裸体做爰| 99re这里只有精品视频首页| 精品国产免费av| 网友自拍一区| 国产精品精品视频| 在线看免费av| 欧美一区二区三级| 激情四射综合网| 99精品偷自拍| 五月天激情视频在线观看| 国产精品99在线观看| 亚洲一区二区三区香蕉| 牛牛在线精品视频| 日韩av在线免费观看一区| 国产寡妇亲子伦一区二区三区四区| 国产婷婷色一区二区三区四区| 亚洲国产精品毛片av不卡在线| 日韩精品诱惑一区?区三区| 亚洲伊人第一页| av手机在线观看| 亚洲色图av在线| 国产又粗又长视频| 亚洲成人免费视频| 我和岳m愉情xxxⅹ视频| 蜜桃精品视频在线| 欧美精品在欧美一区二区| 欧美精品中文| 国产日韩欧美夫妻视频在线观看 | 4438全国成人免费| 国产免费av在线| 日韩一区二区不卡| 影音先锋在线国产| 亚洲日本护士毛茸茸| 中文字幕三级电影| 青青草成人在线观看| 成人在线免费观看视频网站| 一区二区三区四区在线看| 成人午夜黄色影院| 中文字幕 在线观看| 久久久久www| 日本1级在线| 欧美一区二区免费| 波多野结衣高清视频| 亚洲狠狠爱一区二区三区| 午夜影院黄色片| 99久久婷婷国产综合精品电影| 日韩精品你懂的| 日韩视频一区| 一区二区三区四区免费观看| 国内亚洲精品| 精品久久久久久一区| 国产精品一级在线观看| 国产成人在线播放| 超碰在线资源| 久久精品人人做人人爽| 黄色av免费在线观看| 精品av久久707| 在线视频1卡二卡三卡| 欧美日韩亚洲网| 久久久久久久九九九九| 日韩一区有码在线| 久久久久久亚洲中文字幕无码| 大陆成人av片| 久久综合在线观看| 蜜臀av一级做a爰片久久| 99热自拍偷拍| 亚洲激情另类| 国产美女作爱全过程免费视频| 999国产精品| 日本一区二区三区四区高清视频| 久久婷婷国产| 国产高清自拍99| 日韩一区二区三区精品视频第3页 日韩一区二区三区精品 | 欧美老肥妇做.爰bbww| 免费无码国产精品| 狠狠躁夜夜躁人人躁婷婷91| 国产污视频在线看| 夜夜操天天操亚洲| 91porn在线视频| 亚洲人123区| 日韩影院一区二区| 亚洲人成电影网站色mp4| 国产老头老太做爰视频| 国产精品久久毛片av大全日韩| 91l九色lporny| 国产欧美日韩激情| 中文字幕成人动漫| 久久网站热最新地址| 欧美bbbbb性bbbbb视频| 久久久另类综合| 野外性满足hd| 久久嫩草精品久久久精品| 一级片手机在线观看| 久久久久久亚洲综合影院红桃| 美国黄色一级毛片| 国产三级精品三级| 成人性视频免费看| 中文字幕中文在线不卡住| 波多野结衣喷潮| 亚洲人成人一区二区在线观看| 天天色天天操综合| 中文字幕不卡的av| 欧洲美一区二区三区亚洲| wwwwxxxxx欧美| 最近中文字幕免费视频| 久久免费美女视频| 一级特黄曰皮片视频| 欧美精品momsxxx| 美女精品国产| 精品一区二区三区在线| 亚洲精品中文字幕乱码三区不卡| 久久婷婷蜜乳一本欲蜜臀| 亚洲一区在线直播| 亚洲精品一区二区妖精| 韩国无码av片在线观看网站| 999亚洲国产精| 黄色高清无遮挡| 久久99久久99小草精品免视看| 性生活在线视频| 9l国产精品久久久久麻豆| 亚洲最大成人网站| 《视频一区视频二区| 国产在线观看免费av| 欧美日韩在线第一页| 一区二区视频网站| 日韩三级在线观看| 日本一区视频| 日韩视频精品在线| 91超碰在线播放| 国产精品精品视频| 99这里只有精品视频| 欧美午夜精品久久久久久蜜| 国产精品7777| 国产麻豆视频精品| 最新日本中文字幕| 久久久久国产精品麻豆| 我要看黄色一级片| 舔着乳尖日韩一区| 日韩在线电影一区| 蜜桃国内精品久久久久软件9| 亚洲精美视频| 精品1区2区3区4区| 日韩欧美黄色大片| 国产成人av网站| 国产一级久久久久毛片精品| 亚洲日本va在线观看| 欧美黑人一区二区| 欧美一区二区三区视频在线 | 国产精品vvv| 国产精品久久久久久久久免费看| 57pao国产一区二区| 亚洲国产精品一区二区第一页 | 在线免费黄色网| 91在线免费视频观看| 99热精品免费| 欧美日韩另类一区| 深夜福利在线看| 久操成人在线视频| 久久精品超碰| 欧美一区二区三区成人久久片| 亚洲特级毛片| 日本一区二区三区在线免费观看| 国产亚洲女人久久久久毛片| 国产一级特黄毛片| 91精品国产手机| 在线免费黄色| 国产精品久久久久久久久久久久久久 | 金瓶狂野欧美性猛交xxxx| 国产欧美日韩亚洲精品| 国产一区日韩| 六月丁香婷婷激情| 不卡在线视频中文字幕| 日本青青草视频| 欧美久久久久久久久| 岛国在线视频| 国产成人精品视| 欧美人妖在线| 黄色a级片免费| 99久久99久久精品免费看蜜桃| 一级aaa毛片| 亚洲高清在线观看| av中文字幕在线观看第一页| 成人精品一二区| 欧美成人一区二免费视频软件| 四虎成人在线播放| 亚洲卡通动漫在线| 国产99久一区二区三区a片| 久热爱精品视频线路一| 亚洲视频自拍| 欧美一级特黄aaaaaa在线看片| 国产在线播放一区二区三区| 天天鲁一鲁摸一摸爽一爽| 欧美日韩电影在线播放| 免费人成在线观看播放视频| 成人看片人aa| 亚洲先锋影音| av影片在线播放| 亚洲成a人片综合在线| 精品人妻无码一区二区三区蜜桃一 | 99久久精品免费观看国产| 91精品在线国产| 牛夜精品久久久久久久99黑人| 中文写幕一区二区三区免费观成熟| 一区二区免费看| 日本人妻丰满熟妇久久久久久| 性色av一区二区三区| 窝窝社区一区二区| 天堂在线资源视频| 国产精品福利电影一区二区三区四区| 国产精品久久久久久久久久久久久久久久久久 | 精品亚洲二区| 欧美久久在线观看| 91免费在线看| 中文字幕91爱爱| 久久91亚洲人成电影网站| 人人精品亚洲| 在线免费视频一区| 一区二区三区四区蜜桃 | 中文字幕亚洲字幕| 久久99精品久久久野外观看| 欧美在线观看黄| 91麻豆精品秘密| 在线视频 中文字幕| 欧美激情精品久久久久久久变态| 精品少妇3p| 一个色综合久久| 亚洲国产精品久久久男人的天堂| 免费国产在线视频| 91欧美激情另类亚洲| av不卡在线| 99精品中文字幕| 亚洲福利精品在线| 国产成人精选| 亚洲国产精品成人天堂| 中文字幕第一区综合| 亚洲第一天堂影院| 国产精品久久久| 亚洲福利电影| 日本 欧美 国产| 亚洲免费电影在线观看| 欧美成年网站| 国产精品入口免费软件| 亚洲高清免费在线|