python网易云音乐抓取

import threading
from selenium import webdriver
from collections import deque

songList =set([]);
playList =set([]);
#歌单
def chrome_browser_songList(url,browser):
    browser.get(url)
    play_count = browser.find_element_by_id(‘play-count‘).text
    if(int(play_count)>10000):
        data=‘\n‘+browser.find_element_by_class_name(‘f-ff2‘).text+‘ 评论数:‘+str(play_count)+‘  地址:‘+url
        save_file(data,‘D:\\songList.txt‘)
    songQueue = deque()
    try:
        # a[href^=\/song]
        for each in browser.find_elements_by_css_selector(‘a[href^=\/song]‘):
            try:
                print("歌曲名字: %s 地址 %s" % (each.text, each.get_property(‘href‘)))

                songQueue.append(each.get_property(‘href‘))
            except:
                continue
    except:
        print(‘someerror‘)
    song_queue(songQueue,browser)
    #寻找歌单
    playListQueue = deque()
    try:
        for each in browser.find_elements_by_css_selector(‘a[href^=\/playlist]‘):
            try:
                print("歌单: %s 地址 %s" % (each.text, each.get_property(‘href‘)))
                playListQueue.append(each.get_property(‘href‘))
            except:
                continue
    except:
        print(‘someerror‘)
    browser.close()
    browser = webdriver.Chrome(‘C:\Program Files\Google\Chrome\Application\chromedriver.exe‘)
    play_list_queue(playListQueue,browser)
    #browser.close()
#歌曲
def chrome_browser_song(url):
    browser = webdriver.Chrome(‘C:\Program Files\Google\Chrome\Application\chromedriver.exe‘)
    browser.get(url)
    browser.switch_to_frame(‘g_iframe‘)

    comment_count = browser.find_element_by_id(‘cnt_comment_count‘).text
    if(int(comment_count)>10000):
        data = ‘\n歌曲名字:‘+browser.find_element_by_class_name(‘f-ff2‘).text+‘ 歌手:‘+browser.find_element_by_css_selector(‘a[href^=\/artist]‘).text+‘ 评论数:‘+comment_count+‘ 歌曲地址:‘ +url;
        save_file(data,‘D:\\song.txt‘)
    browser.close()
#保存文件
def save_file(data,file):
    save_path = file
    f_obj = open(save_path, ‘a‘)
    f_obj.write(data)
    f_obj.close()
#歌队列
def song_queue(songQueue,browser):

    while songQueue:

        current_url = songQueue.popleft()
        if current_url not in songList:
            songList.add(current_url)
            try:
                chrome_browser_song(current_url)
            except:
                continue
#歌单队列
def play_list_queue(listQueue,browser):

    while listQueue:

        current_url = listQueue.popleft()
        if current_url not in playList:
            playList.add(current_url)
            try:
                chrome_browser_songList(current_url,browser)
            except:
                continue

url_list =[
           ‘http://music.163.com/playlist?id=598057191‘,
           ‘http://music.163.com/#/playlist?id=144236857‘,
           ]

def thread_1():
    url = url_list[0]
    browser = webdriver.Chrome(‘C:\Program Files\Google\Chrome\Application\chromedriver.exe‘)
    chrome_browser_songList(url, browser)
def thread_2():
    url = url_list[1]
    browser = webdriver.Chrome(‘C:\Program Files\Google\Chrome\Application\chromedriver.exe‘)
    chrome_browser_songList(url, browser)

#多线程
def thread_song():
    threads = []

    t1 = threading.Thread(target=thread_1)
    threads.append(t1)
    t2 = threading.Thread(target=thread_2)
    threads.append(t2)

    return threads
if __name__ == ‘__main__‘:
    # url = url_list[1]
    # browser = webdriver.Chrome(‘C:\Program Files\Google\Chrome\Application\chromedriver.exe‘)
    # chrome_browser_songList(url, browser)
    threads = thread_song()

    for t in threads:
        t.setDaemon(True)
        t.start()
    t.join()

因为没有解决登陆问题,采用了一种比较笨的方法~~

时间: 2024-11-09 09:16:34

python网易云音乐抓取的相关文章

python网易云音乐文件爬取

此程序只适用于歌单列表页面的音乐文件爬取,建议去网易云官网寻找要下载的音乐歌单,将歌单的url地址替换到mian()函数的url,然后下载,文件存放位置为py文件同级的oldMusic文件夹中 直接上代码 #!/usr/bin/env python # _*_ coding: utf-8 _*_ # @Time: 2020/1/29 11:31 # @Author: lixing # @File: getWangYiYunMusic.py # @desc: 爬取网易云上的音乐文件 原文链接:ht

python 网易云音乐

import math import random from Crypto.Cipher import AES from Crypto.Cipher import AES from binascii import b2a_hex, a2b_hex import codecs import requests import base64 import rsa class downmusic(object): f="00e0b509f6259df8642dbc35662901477df22677ec1

如何用Python网络爬虫爬取网易云音乐歌词

前几天小编给大家分享了数据可视化分析,在文尾提及了网易云音乐歌词爬取,今天小编给大家分享网易云音乐歌词爬取方法. 本文的总体思路如下: 找到正确的URL,获取源码: 利用bs4解析源码,获取歌曲名和歌曲ID: 调用网易云歌曲API,获取歌词: 将歌词写入文件,并存入本地. 本文的目的是获取网易云音乐的歌词,并将歌词存入到本地文件.整体的效果图如下所示: 基于Python网易云音乐歌词爬取 赵雷的歌曲 本文以民谣歌神赵雷为数据采集对象,专门采集他的歌曲歌词,其他歌手的歌词采集方式可以类推,下图展示

python爬取网易云音乐歌曲评论信息

网易云音乐是广大网友喜闻乐见的音乐平台,区别于别的音乐平台的最大特点,除了"它比我还懂我的音乐喜好"."小清新的界面设计"就是它独有的评论区了------各种故事汇,各种金句频出.我们可以透过歌曲的评论数来判断一个歌者的市场分量和歌曲的流行度.言归正传,如果我们想要简单爬取指定歌曲的评论内容来做词云或者其他相关数据分析,有没有容易上手的好方法呢? 首先,我们打开网易云音乐的网页版:https://music.163.com/,随便选择一首歌曲,如林志炫版本的<

抓取网易云音乐歌曲热门评论生成词云

前言 抓数据 抓包分析 加密信息处理 抓取热门评论内容 词云 词云运行效果 总结 前言 网易云音乐一直是我向往的"神坛",听音乐看到走心的评论的那一刻,高山流水.于是今天来抓取一下歌曲的热门评论.并做成词云来展示,看看相对于这首歌最让人有感受的评论内容是什么. 做成词云的好处就是直观以及美观, 其他的我也想不出来有什么了. 抓数据 要想做成词云,首先得有数据才行.于是需要一点点的爬虫技巧. 抓包分析 加密信息处理 抓取热门评论内容 抓包分析 使用Chrome控制台.我们可以轻松的找到评

使用爬虫抓取网易云音乐热门评论生成好玩的词云

互联网爬虫是一个很有意思的技术,借由爬虫,我们可以做到很多好玩的事情--这其中就包括爬取评论. 词云就是个更好玩的技术,通过技术方法分析词语出现频率,生成可视化的图形,将文字内容用图形呈现,想想就很意思. 这次,我们就试着把这两个技术结合起来吧. 前言 网易云音乐一直是我向往的"神坛",听音乐看到走心的评论的那一刻,高山流水.于是今天来抓取一下歌曲的热门评论.并做成词云来展示,看看相对于这首歌最让人有感受的评论内容是什么. 做成词云的好处就是直观以及美观, 其他的我也想不出来有什么了.

python爬取网易云音乐歌单音乐

在网易云音乐中第一页歌单的url:http://music.163.com/#/discover/playlist/ 依次第二页:http://music.163.com/#/discover/playlist/?order=hot&cat=%E5%85%A8%E9%83%A8&limit=35&offset=35 依次第三页:http://music.163.com/#/discover/playlist/?order=hot&cat=%E5%85%A8%E9%83%A8

Python 获取网易云音乐热门评论

--> html { line-height: 1.6 } body { font-family: -apple-system-font, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif; background-color: #f3f3f3; line-height: inherit } body.ric

python实现网易云音乐批量下载

今天给大家带来的是网易云音乐批量下载,代码有些粗糙,以后有时间再慢慢改进.我只爬取了某个明星的全部歌曲,如果再添加点代码完全可以爬取整站音乐,但是我认为还是点到为止,剩下的代码也不难.首先,通过网页抓包获取真实音乐文件的链接,然后找到该提交地址,并分析传入的 data .比较走运的是,网上有很多关于获取 encSecKey和 params 的教程,大家可以搜索一下. 一.抓包 我们的目的是获取到真实的 URL 地址,可以看到 post 访问该网址,可以返回真实的 URL . 二.分析 post