今天就跟大家聊聊有关如何让Python去爬取付费歌曲,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
今天来教大家一个自动化爬虫的工具 selenium
Selenium 是一个 Web 的自动化测试工具,最初是为网站自动化测试而开发的,就像玩游戏用的按键精灵,可以按指定的命令自动操作。
Selenium 测试工具直接操控浏览器中,就像真正的用户在操作一样。Selenium 可以根据的指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏,或者判断网站上某些动作是否发生等。
今天的目标是爬取付费歌曲
受害者地址
http://tool.liumingye.cn/music/?page=homePage
导入工具
import time import requests from selenium import webdriver from selenium.webdriver.chrome.options import Options
解析网页
打开F12 开发者工具,不管三七二十一,先来一顿瞎分析~
driver = webdriver.Chrome(executable_path='chromedriver.exe', options=chrome_options) # key_world = input('请输入歌手名字:') 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\\音乐\\' + 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 / 10 js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight * %f' % j driver.execute_script(js) lis = driver.find_elements_by_css_selector('#player li') f = 0 for li in lis: f += 1 name = li.find_element_by_css_selector('.aplayer-list-title').text li.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()
运行代码后,效果如下
看完上述内容,你们对如何让Python去爬取付费歌曲有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。