爬虫酷狗top_50

今天练习了一下爬虫的东西,拿爬取酷狗前500首歌曲 代码如下:


import time
import requests
from bs4 import BeautifulSoup
import random
#请求头
headers={
    'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'
}

#传入url
def get_into(url):

    # 获取html的页面,发送请求
    wb_data=requests.get(url,headers=headers)           #headers的设置是给服务器一个证明 我们是浏览器
    soup=BeautifulSoup(wb_data.text,'lxml')             #解析这个网页
    ranks=soup.select('.pc_temp_num')
    titles=soup.select('.pc_temp_songlist > ul > li > a')
    song_times=soup.select('.pc_temp_time')
    for rank, title, song_time in zip(ranks,titles,song_times):
        data={
            'rank':rank.get_text().strip(),
            'singer': title.get_text().split('-')[0].strip(),
            'song':title.get_text().split('-')[1].strip(),
            'time':song_time.get_text().strip()
        }
        print(data)

#下面这句话的意思是该脚本模块可以导入到别的模块中用,另外该模块也可以自己执行
if __name__=='__main__':
    urls=['http://www.kugou.com/yy/rank/home/{}-8888.html?'.format(str(i)) for i in range(1,24)]
    for url in urls:
        get_into(url)
        time.sleep(random.randint(1,10))
Fork me on GitHub