爬虫笔记_06

获取酷狗音乐抖音热歌榜前3页数据

关键信息:排名,歌手,歌名,时长

使用requests抓取

BeautifulSoup提取信息

保存在excel表格

from bs4 import BeautifulSoup
import requests
import time
import xlwt
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Firefox/102.0'}
# 抓取抖音热歌榜某个页面的html,并提取信息
def get_info(url):
    dy_data=requests.get(url,headers=headers)
    soup=BeautifulSoup(dy_data.text,'lxml')
    # 提取排名
    ranks=soup.select('.pc_temp_num')
    # 提取歌手和歌名
    titles=soup.select('.pc_temp_songname')
    # 提取歌曲时长
    times=soup.select('.pc_temp_time')
    for rank,title,time in zip(ranks,titles,times):
        yield {
            'rank':rank.get_text().strip(),
            'singer': title['title'].split('-')[0].strip(),
            'song': title['title'].split('-')[1].strip(),
            'time':time.get_text().strip()
        }

if __name__ == '__main__':
    urls=['https://www.kugou.com/yy/rank/home/{}-52144.html?from=rank'.format(str(i)) for i in range(1,4)]
    book=xlwt.Workbook(encoding='utf-8')
    sheet1=book.add_sheet('sheet1')
    header=['排名','歌名','歌手','时长']
    for h in range(len(header)):
        sheet1.write(0,h,header[h])
    i=1
    for url in urls:
        getinfos=get_info(url)
        for getinfo in getinfos:
            rank_info=sheet1.write(i,0,getinfo['rank'])
            singer_info=sheet1.write(i,1,getinfo['singer'])
            song_info=sheet1.write(i,2,getinfo['song'])
            time_info=sheet1.write(i,3,getinfo['time'])
            time.sleep(0.5)
            i+=1
    book.save('info.xls')

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值