精品欧美一区二区三区在线观看 _久久久久国色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)

午夜视频精品| 欧美激情啪啪| 99亚偷拍自图区亚洲| 久久久久久国产精品| 少妇极品熟妇人妻无码| 精精国产xxxx视频在线中文版| 国产中文字幕一区| 色综合色综合网色综合| 亚洲成av人片在线观看无| 手机在线观看av网站| 久久久久久夜精品精品免费| 午夜精品久久久久久久久久久久| 国产网站无遮挡| 91精品店在线| 亚洲精品网站在线观看| 国产一区二区无遮挡| 99久久久无码国产精品免费蜜柚 | 99免费在线观看视频| 久久久久成人网站| 青青草久久爱| 欧美性猛交xxxx乱大交极品| 一区二区免费在线观看| 成人av手机在线| 免费亚洲视频| 久久av.com| 日本黄色网址大全| www.久久99| 精品久久久久久久久久国产| 中文字幕乱码一区二区三区| 亚州男人的天堂| 免费人成精品欧美精品| 欧美激情免费在线| 91精品久久久久久久久久久久| 免费观看亚洲视频大全| 色欧美88888久久久久久影院| 一区二区在线观| 瑟瑟在线观看| 国产精品99久久久久久久女警| 欧美在线观看网站| 免费日韩在线视频| 日韩精品久久久久久久电影99爱| 亚洲精品一区二区在线观看| 国产欧美一区二| 亚洲一区资源| 亚洲图片欧美综合| 99亚洲国产精品| a中文在线播放| 国产成人精品综合在线观看| 国产日韩换脸av一区在线观看| 日韩熟女精品一区二区三区| 欧美一区在线看| 日韩在线视频网站| xxxxx在线观看| 老司机成人在线| 欧美xxxx老人做受| 中文字幕一区二区在线观看视频 | 国产精品极品在线| 五月婷婷亚洲综合| 亚洲黄色成人| 久久久久久亚洲| 免费毛片在线播放免费| 残酷重口调教一区二区| 日韩高清a**址| 国产在线观看无码免费视频| 国产suv精品一区二区四区视频| 91精品在线免费| 天堂网在线免费观看| 国产综合色区在线观看| 日韩欧美在线看| av天堂永久资源网| 亚洲精品成人图区| 岛国av午夜精品| 黄色一级视频在线播放| 伊人手机在线| 亚洲日本欧美天堂| 青青草综合视频| 污视频在线免费观看网站| 亚洲色欲色欲www| 久久最新免费视频| 超碰在线网址| 亚洲自拍欧美精品| 少妇大叫太大太粗太爽了a片小说| 丝袜综合欧美| 一区二区三区四区不卡视频| 蜜桃视频一区二区在线观看| 青春草在线视频| 亚洲线精品一区二区三区| 国产一区二区视频播放| 亚洲天堂电影| 欧美日韩免费一区二区三区| 五月天中文字幕在线| 久久久久久亚洲精品美女| 欧美一区二区三区精品| 性高潮免费视频| 亚洲欧洲色图| 亚洲欧美国产日韩天堂区| 日韩成人av一区二区| 久9久9色综合| 久久久国产91| av大片免费在线观看| 奶水喷射视频一区| 成人激情av在线| 开心激情综合网| 久久久久88色偷偷免费| 国产成年人在线观看| 成人高潮aa毛片免费| 日韩欧美亚洲综合| 久久久久久久久久毛片| 久久午夜影院| 在线观看欧美www| 欧美成人aaa片一区国产精品| 夜久久久久久| 国产伦精品免费视频| 狠狠人妻久久久久久综合麻豆| av一区二区久久| 亚洲欧美丝袜| 国产拍在线视频| 欧美男同性恋视频网站| 手机精品视频在线| 久久99精品国产自在现线| 中文字幕精品—区二区| 国产一国产二国产三| 青青草成人在线观看| 国产日韩欧美一区二区三区四区 | 怡红院精品视频| 精品在线视频免费| 精品在线视频一区| 免费成人深夜夜行视频| 国产精品剧情一区二区在线观看| 欧美日韩一区二区在线播放| 欧美日韩理论片| 国产免费播放一区二区| 欧美激情亚洲激情| 91av国产精品| 国产日韩欧美高清在线| 被灌满精子的波多野结衣| 精品美女一区| 亚洲人成网在线播放| 日韩精品国产一区二区| 国产精品自拍在线| 制服国产精品| 2019年精品视频自拍| 日韩黄色高清视频| 五月天丁香激情| 免费av网站大全久久| 久久精品日产第一区二区三区| 手机av免费在线| 欧美一区永久视频免费观看| 天天操天天干天天操天天干| 亚洲麻豆一区| 国产91一区二区三区| 成人短视频在线观看| 欧美日韩国产不卡| 日韩人妻无码精品综合区| 亚洲视频播放| 久久66热这里只有精品| av今日在线| 亚洲国产精品va在线| 国产精品999久久久| 国产精品18久久久久久久久久久久| 婷婷久久五月天| 久久天堂av| 在线激情影院一区| 91po在线观看91精品国产性色| 韩日视频在线观看| 成人激情久久| www.国产一区| 一级做a爰片久久毛片16| 99国产欧美另类久久久精品| 妺妺窝人体色777777| 久久精品论坛| 欧美中文字幕精品| 国产在线超碰| 欧美日韩在线电影| 性欧美成人播放77777| 久久久国产精品一区二区中文| 麻豆精品蜜桃一区二区三区| 亚洲国产欧美日本视频| 国产亚洲欧美视频| 中文在线观看免费高清| 中文字幕亚洲区| 手机在线国产视频| 国产精品99一区二区| 国产超碰91| 在线观看的黄色| 国产亚洲欧美日韩精品| 国产精品无码专区av免费播放| 亚洲日本中文字幕区| 欧美性生交xxxxx| 亚洲在线成人| 亚洲精品美女久久7777777| 国产 日韩 欧美| 欧美大片欧美激情性色a∨久久| 国产综合在线播放| 亚洲国产wwwccc36天堂| 亚洲高清无码久久| 久久久久网站| 中文字幕乱码免费| 欧美jizz19性欧美| 国产乱肥老妇国产一区二| 91蜜桃在线视频| 日韩精品丝袜在线| 91无套直看片红桃| 亚洲一区在线看| 欧美亚洲色综久久精品国产| 国产在线精品免费| 亚洲熟女乱色一区二区三区| 四虎成人av| 国内一区在线| 欧洲精品久久久久毛片完整版| 欧美国产日韩中文字幕在线| 黄色av网站在线| 日韩欧美高清dvd碟片| av片免费观看| 1024国产精品| 精品人妻二区中文字幕| 日韩高清不卡一区| 国产在线播放观看| 国产精品毛片久久| 九九九九久久久久| 激情不卡一区二区三区视频在线| 国产91精品久久久久| 国产精品剧情| 国产一区二区三区丝袜| 亚洲国产成人一区二区| 欧美日韩在线电影| 黄色av一级片| 亚洲高清免费观看高清完整版在线观看| 亚洲AV无码片久久精品| 国产成都精品91一区二区三| 色播五月综合网| 亚洲中字黄色| 青青草综合视频| 成人免费电影网址| 欧美精品亚洲精品| 牛牛影视久久网| 91精品国产高清久久久久久91裸体 | 国产尤物久久久| 国产在线观看一区| 免费欧美网站| 国产在线观看精品| 深夜成人影院| 91sa在线看| 黄色大片在线| 欧美疯狂做受xxxx高潮| 黄色网在线免费看| 少妇av一区二区三区| 国产在线视频福利| 精品视频在线播放| 婷婷色在线观看| 亚洲国产成人久久综合一区| 亚洲精品免费在线观看视频| 91精品国产一区二区三区蜜臀| 亚洲 小说区 图片区| 在线观看一区二区视频| 国产精品人人人人| 婷婷中文字幕一区三区| 欧美亚洲天堂网| 亚洲成人av一区| 久久久久久天堂| 亚洲午夜精品一区二区三区他趣| 日本视频在线免费| 国产精品国产三级国产普通话蜜臀 | 天天色综合天天| 日韩特黄一级片| 亚洲国产另类av| 日本一区二区免费在线观看| 亚洲一区二区精品视频| 久久久久亚洲av片无码下载蜜桃| 中日韩av电影| 久久久久久久久久97| 亚洲视频一区在线| 国产在线视频二区| 天天综合网天天综合色| 天堂中文在线网| 色婷婷精品大视频在线蜜桃视频| 欧美一区免费看| 欧亚一区二区三区| 国产又粗又黄视频| 欧美成人国产一区二区| 五月天婷婷激情网| 亚洲女人天堂视频| av二区在线| 久久成人亚洲精品| av中文字幕在线观看第一页| 欧美做受高潮1| 欧美成人三级| 91中文字幕一区| 久久动漫网址| 四虎一区二区| 欧美日韩在线大尺度| 日本精品一区在线观看| 毛片av中文字幕一区二区| 欧美xxxxxbbbbb| 91亚洲精品久久久蜜桃网站 | 97se亚洲国产综合自在线不卡 | av激情亚洲男人天堂| 国产精品1000部啪视频| 国产精品美女久久久久久| 妺妺窝人体色www婷婷| 亚洲观看高清完整版在线观看| 日本在线观看视频网站| 欧美色中文字幕| 亚洲免费视频网| 亚洲欧美激情一区| h片在线免费观看| 国产91精品久久久久久| 国产一区二区三区| 蜜桃av噜噜一区二区三| 91成人观看| 欧美a在线视频| 国产精品18久久久久久久网站| 手机av免费看| 午夜激情一区二区| www黄色在线观看| 色偷偷9999www| 欧美日韩亚洲国产| 久久亚洲精品欧美| 亚洲人成在线影院| 日本黄色大片在线观看| 亚洲人午夜精品天堂一二香蕉| wwwwww在线观看| 亚洲欧美国产高清va在线播| a级片在线免费观看| 亚洲综合最新在线| 天天做天天爱天天爽综合网| 日本爱爱免费视频| 久久久噜噜噜久久中文字幕色伊伊| 18精品爽视频在线观看| 欧美一级艳片视频免费观看| av电影在线观看| 国产精品久久久久久亚洲调教| 亚洲国产网址| 国产精品一区二区免费在线观看| 粉嫩aⅴ一区二区三区四区 | 欧美成人高清| 中文字幕一区久久| 日韩美女视频一区二区| 亚洲午夜精品久久久| 日韩在线播放av| 久久久久伊人| 韩国黄色一级大片| 国模一区二区三区白浆| 91视频综合网| 欧美一区二区精美| 一色桃子av在线| 国产成人亚洲欧美| 在线视频观看日韩| asian性开放少妇pics| 欧美性极品少妇精品网站| 暖暖视频在线免费观看| 日韩免费视频在线观看| 国产一区毛片| 一区二区在线免费看| 中文字幕一区二区三区四区| 国产精品无码在线播放 | 国产精品白嫩白嫩大学美女| 日韩欧美国产综合一区| 男女视频在线| 久久国产精品一区二区三区四区 | 波多野结衣在线免费观看| 亚洲精品免费电影| 人妻视频一区二区三区| 日本精品久久久久久久| 久久婷婷蜜乳一本欲蜜臀| 午夜影院免费观看视频| 亚洲动漫第一页| 黄色在线网站| 国产综合色香蕉精品| 欧美视频日韩| 久久久精品人妻无码专区| 欧美丝袜丝nylons| 在线观看h网| 久久久99爱| 精品在线播放免费| 国产奶水涨喷在线播放| 亚洲视频第一页| 欧美a级大片在线| 日本一区二区黄色| 亚洲欧美一区二区三区国产精品| 亚洲黄色片视频| 国产va免费精品高清在线| 91精品国产91久久综合| 中文字幕精品视频在线| 欧美丝袜丝交足nylons| 1024在线看片你懂得| 亚洲啪啪av| av午夜一区麻豆| 国产精选久久久| 欧美做受高潮电影o| 中文字幕日韩欧美精品高清在线| 五十路六十路七十路熟婆| 欧美丝袜丝交足nylons| f2c人成在线观看免费视频| 亚洲午夜精品福利| 不卡免费追剧大全电视剧网站| 亚洲图片欧美在线| 人人做人人澡人人爽欧美| 欧美1级日本1级| 少妇av片在线观看|