别人有的,我们也要有
看到一些诗意的推文总能自带一些音乐,但是我又不喜欢微信公众号自带的QQ音乐,所以今天来下载一次mp3格式音乐~
一直在想如何将一个人熟悉或不熟悉的知识通俗易懂的描绘笔下,所以今天我们来借此了解所谓的爬虫,嗯…让我想想如何把我贫瘠的知识说的长一点,把这首歌听完再走…
01
何为爬虫
网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
02
嗯…
在从不了解爬虫到稍微了解一点爬虫的现在,我的内心如是也。
03
万物前提
爬虫其实是大数据分析里最最基础的一部分,学了基本的爬虫可能连数据分析的入门还算不上,众所周知,数据分析,机器学习,人工智能等领域所要有的第一步就是数据的获取,有了数据就可以对数据进行建模分析,而网络爬虫的任务就是完成数据的采集(此处应该有广告!!)。
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站”!
一起玩耍鸭。