爬虫(1)

人生苦短,我用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了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值