人生苦短,我用pyhton
忙里偷闲,接触了一下python,哇,真的很有意思,下面奉献一个基本的爬虫源码,欢迎评论,大家一起学习撒
import json import requests import re #声明一个类ximalaya class ximalaya(object): def __init__(self): #爬虫反爬会有一个头部headers判定是否是机器操作,定义一个headers模拟人 self.header={ "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36" } #一个音频网站的网址 self.start_url="https://www.ximalaya.com/revision/play/album?albumId=11219907&pageNum=1&sort=-1&pageSize=30" #爬取函数 def get_message(self): #请求网页 r=requests.get(self.start_url,headers=self.header) #解析数据成dic python_dic=json.loads(r.content.decode()) mylist=python_dic['data']['tracksAudioPlay'] #输出的是需要的部分 print(mylist) allList=[] #遍历mylist赋值到字典list中,返回一个包含音乐名和download地址 for i in mylist: list={} list['src']=i['src'] list['trackName']=i['trackName'] print(list["src"]) allList.append(list) return allList #保存目录 def save_file(self,allList): for i in allList: #下载文件到music/目录下 with open('music/{}.m4a'.format(i['trackName']),'ab')as f: r= requests.get(i['src'],headers=self.header) #通过请求url得到二进制文件保存到本地 f.write(r.content) #运行 def run(self): allList=self.get_message() self.save_file(allList) if __name__ == '__main__': xima=ximalaya() xima.run()
这样这一页的音频都下来了,当然这是最基本的爬虫,但是属于五脏俱全的麻雀,比如说如果要爬这个频道的十几页,留一下url的参数,更改页数循环即可爬取,再有如果要爬取整个网站,就要仔细分析url了。