从网易云音乐看爬虫。

别人有的,咱们也要有
在这里插入图片描述html

看到一些诗意的推文总能自带一些音乐,可是我又不喜欢微信公众号自带的QQ音乐,因此今天来下载一次mp3格式音乐~前端

一直在想如何将一我的熟悉或不熟悉的知识通俗易懂的描绘笔下,因此今天咱们来借此了解所谓的爬虫,嗯…让我想一想如何把我贫瘠的知识说的长一点,把这首歌听完再走…python

01web

何为爬虫微信

网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更常常的称为网页追逐者),是一种按照必定的规则,自动地抓取万维网信息的程序或者脚本。另一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。网络

02多线程

嗯…机器学习

在从不了解爬虫到稍微了解一点爬虫的如今,个人心里如是也。分布式

在这里插入图片描述

03ide

万物前提

爬虫实际上是大数据分析里最最基础的一部分,学了基本的爬虫可能连数据分析的入门还算不上,众所周知,数据分析,机器学习,人工智能等领域所要有的第一步就是数据的获取,有了数据就能够对数据进行建模分析,而网络爬虫的任务就是完成数据的采集(此处应该有广告!!)。

04

开始了!

因此快来看我怎么下载网易云里的音乐!!

首先登录网易云音乐,下载我收藏多年的音乐歌单到电脑右击下载,选择路径,就下载好了

我我的认为,爬取通常网页的基本信息有三步。

第一步访问网页

html=requests.get(url,headers=headers).content.decode('utf-8')

第二步获取数据

music_url = tree.xpath('//tbody//tr/td[2]/div/div/div//span/ a/@href')
  name=tree.xpath('//ul[@class="f-hide"]/li/a/text()')

第三步保存数据

with open(file_path,"wb")as mu:
            req=requests.get(base,headers=headers)
            mu.write(req.content)

代码如是也:

import requests
from lxml import etree

url='https://music.163.com/playlist?id=2655408339'
headers = { 
 
  
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36'
    }
def get_content(url):
    html=requests.get(url,headers=headers).content.decode('utf-8')
    print(html)
    #加载
    soup = BeautifulSoup(html, 'lxml')
    tree=etree.HTML(html)
    music_url = tree.xpath('//tbody//tr/td[2]/div/div/div//span/ a/@href')
    name=tree.xpath('//ul[@class="f-hide"]/li/a/text()')

    for index,item in enumerate(music_url):
        url_id=item.split('=')[-1]
        print(url_id)
        filename=name[index]
        base='http://music.163.com/song/media/outer/url?id=%s'%url_id
        print(base)
        file_path=r"C:\folders\核心六大难\软文生涯\网易云音乐/%s.mp3"%filename
        with open(file_path,"wb")as mu:
            req=requests.get(base,headers=headers)
            mu.write(req.content)
get_content(url)

在这里插入图片描述

图|涉及反爬寻找目标网址有一个艰难的过程。

在这里插入图片描述

01

没那么简单

因此,我就学会了爬虫了吗?

不,真正的征途才刚刚开始。

你还须要学习的:

在二般没有反爬的网页下,咱们能够很轻松的爬到数据,大多状况下,咱们会遇到各类各样的反爬机制,互联网前端行业的发展,数据加载也是经过接口形式传输或者是JSON数据通过JavaScript渲染得来的,这时requests获取网页源代码就无论用了,因而就延伸出了Ajax,动态渲染等技术。

数据量极大时,这时候就须要提高CPU的利用率,也就是所谓的“多线程,协程,进程”。对于须要规模化的项目又涉及到“分布式”,或者对于一些强大的反爬机制还须要设置代理IP,又或者你会遇到奇葩的反爬机制,正如此刻的我还在困惑如何大量下载个人歌单…

在这里插入图片描述

好了,看到这里,对于懂爬虫的大佬我想说:

在这里插入图片描述

而想学爬虫又不知如何下手的小伙伴,能够关注个人CSDN博客(后台回复CSDN),里面有我学习时记录的笔记

我想说:

在这里插入图片描述

欢迎关注微信公众号“麦香E站”!
一块儿玩耍鸭。
在这里插入图片描述