让程序像人一样的去批量下载歌曲?Python采集付费歌曲
前言
本文的文字及圖片來(lái)源于網(wǎng)絡(luò),僅供學(xué)習(xí)、交流使用,不具有任何商業(yè)用途,版權(quán)歸原作者所有,如有問(wèn)題請(qǐng)及時(shí)聯(lián)系我們以作處理。
今天來(lái)教大家一個(gè)自動(dòng)化爬蟲(chóng)的工具 selenium
很多人學(xué)習(xí)python,不知道從何學(xué)起。
很多人學(xué)習(xí)python,掌握了基本語(yǔ)法過(guò)后,不知道在哪里尋找案例上手。
很多已經(jīng)做案例的人,卻不知道如何去學(xué)習(xí)更加高深的知識(shí)。
那么針對(duì)這三類人,我給大家提供一個(gè)好的學(xué)習(xí)平臺(tái),免費(fèi)領(lǐng)取視頻教程,電子書(shū)籍,以及課程的源代碼!??¤
QQ群:961562169
selenium
Selenium 是一個(gè) Web 的自動(dòng)化測(cè)試工具,最初是為網(wǎng)站自動(dòng)化測(cè)試而開(kāi)發(fā)的,就像玩游戲用的按鍵精靈,可以按指定的命令自動(dòng)操作。
Selenium 測(cè)試工具直接操控瀏覽器中,就像真正的用戶在操作一樣。Selenium 可以根據(jù)的指令,讓瀏覽器自動(dòng)加載頁(yè)面,獲取需要的數(shù)據(jù),甚至頁(yè)面截屏,或者判斷網(wǎng)站上某些動(dòng)作是否發(fā)生等。
項(xiàng)目目標(biāo)
今天的目標(biāo)是爬取付費(fèi)歌曲
受害者地址
http://tool.liumingye.cn/music/?page=homePage?
?
先給大家看下效果
爬蟲(chóng)代碼
導(dǎo)入工具
import time import requests from selenium import webdriver from selenium.webdriver.chrome.options import Options解析網(wǎng)頁(yè)
打開(kāi)F12 開(kāi)發(fā)者工具,不管三七二十一,先來(lái)一頓瞎分析~
?
?
哦豁~ 這里面居然有數(shù)據(jù)接口,還是post請(qǐng)求,那這樣的話就咱們就看它的data參數(shù),那里有變化
?
?
?
?
driver = webdriver.Chrome(executable_path='chromedriver.exe', options=chrome_options) # key_world = input('請(qǐng)輸入歌手名字:') 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 = 'C:\\Users\\Administrator\\Desktop\\音樂(lè)\\' + name + '.mp3'response = requests.get(url=url)with open(filename, mode='wb') as f:f.write(response.content)def drop_down():"""模擬人去滾動(dòng)鼠標(biāo)向下瀏覽頁(yè)面"""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 += 1name = li.find_element_by_css_selector('.aplayer-list-title').textli.find_element_by_css_selector('.aplayer-list-download').click()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')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()運(yùn)行代碼后,效果如下
?
?
?
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的让程序像人一样的去批量下载歌曲?Python采集付费歌曲的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 数据库 可疑 处理
- 下一篇: ioremap,你应该知道的事