Python实现爬虫程序,付费歌曲一样可以免费下载~
前言
本文的文字及圖片來源于網絡,僅供學習、交流使用,不具有任何商業用途,如有問題請及時聯系我們以作處理。
PS:如有需要Python學習資料的小伙伴可以加點擊下方鏈接自行獲取
python免費學習資料以及群交流解答點擊即可加入
今天在網上閑逛的時候發一下比較好的音樂下載網址,輸入歌手名字有歌手全部的音樂,還可以下載無損音質的音樂
 
 作為爬蟲的愛好者,對此不得給安排一下?
打開F12 開發者工具,不管三七二十一,先來一頓瞎分析~
 
 哦豁~ 這里面居然有數據接口,還是post請求,那這樣的話就咱們就看它的data參數,那里有變化
 
 
 多嘗試幾次之后,發現data參數,是動態變化且沒有規律~
其中涉及了JS動態數據加載,這樣的話,JS解密…emmmmmmmmmm
 
 
我不會呀~ 涼涼了?
怎么可以就這樣放棄了~ 不會JS 那咱們就用另外一種方法~ selenium
selenium
Selenium 是一個 Web 的自動化測試工具,最初是為網站自動化測試而開發的,就像玩游戲用的按鍵精靈,可以按指定的命令自動操作。
Selenium 測試工具直接操控瀏覽器中,就像真正的用戶在操作一樣。Selenium 可以根據的指令,讓瀏覽器自動加載頁面,獲取需要的數據,甚至頁面截屏,或者判斷網站上某些動作是否發生等。
模塊安裝
pip install selenium谷歌驅動下載地址:
https://npm.taobao.org/mirrors/chromedriver/ http://chromedriver.storage.googleapis.com/index.html配置瀏覽器驅動:
將下載好的瀏覽器驅動解壓,將解壓出的 exe 文件放到Python的安裝目錄下,也就是和python.exe同目錄即可。
或者
把驅動和代碼放在同一個路徑里面~
實現代碼
import time import requests from selenium import webdriver from selenium.webdriver.chrome.options import Optionschrome_options = Options() chrome_options.add_argument('--headless') driver = webdriver.Chrome(executable_path='chromedriver.exe', options=chrome_options) driver.implicitly_wait(10) driver.get('http://tool.liumingye.cn/music/?page=searchPage') driver.find_element_by_css_selector('#input').send_keys('張杰') driver.find_element_by_css_selector('#search button:nth-child(2) i').click()"""保存歌曲數據""" def download(name, url):filename = '音樂\\' + name + '.mp3'response = requests.get(url=url)with open(filename, mode='wb') as f:f.write(response.content)"""模擬人去滾動鼠標向下瀏覽頁面""" def drop_down():for x in range(1, 20, 10):time.sleep(0.5)j = x / 10js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight * %f' % jdriver.execute_script(js)"""解析網站數據獲取歌曲名字以及歌曲下載地址""" lis = driver.find_elements_by_css_selector('#player li') f = 0 for li in lis:f += 1time.sleep(1)name = li.find_element_by_css_selector('.aplayer-list-title').textli.find_element_by_css_selector('.aplayer-list-download').click()time.sleep(1)down_url = driver.find_element_by_css_selector('#m-download > div > div > div.modal-body > div:nth-child(6) > div.input-group-append > a.btn.btn-outline-secondary.download').get_attribute('href')time.sleep(1)driver.find_element_by_css_selector('#m-download > div > div > div.modal-header > button').click()# time.sleep(1)download(name, down_url)print(name, down_url)if f % 10 == 0:drop_down()
 
總結
以上是生活随笔為你收集整理的Python实现爬虫程序,付费歌曲一样可以免费下载~的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 二逼了吧,你竟然在中断里面休眠
- 下一篇: 我看完大连理工研究生的遗书之后
