今天练习了一下爬虫的东西,拿爬取酷狗前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))