爬蟲實例學習——爬取酷狗TOP500數據


酷狗網址:https://www.kugou.com/yy/rank/home/1-8888.html?from=rank

環境:eclipse+pydev

 1 import requests
 2 from bs4 import BeautifulSoup
 3 import time
 4 
 5 headers ={
 6     'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36 QIHU 360EE'
 7           }    #加入請求頭,偽裝成瀏覽器,以便更好抓取數據
 8 
 9 def get_info(url):           #定義獲取信息的函數
10     wb_data = requests.get(url,headers = headers)
11     soup = BeautifulSoup(wb_data.text,'lxml')
12     ranks = soup.select('span.pc_temp_num')                     #selet()方法見下面圖示
13     titles = soup.select('#rankWrap > div.pc_temp_songlist > ul > li > a')  
14     times = soup.select('span.pc_temp_tips_r > span')
15     for rank,title,time in zip(ranks,titles,times):
16         data = {
17             'rank':rank.get_text().strip(),                #歌曲序號
18             'singer':title.get_text().split('-')[0],       #歌手名稱
19             'song':title.get_text().split('-')[1],         #歌曲名稱
20             'time':time.get_text().strip()                 #歌曲時長
21         }         
22         print (data)     
23         
24 if __name__ == '__main__':                #程序主入口
25     urls = ['https://www.kugou.com/yy/rank/home/{}-8888.html?from=rank'.format(str(i)) for i in range(1,24)]            #構建多頁url,500條結果需23組,每頁網頁22條
26     for url in urls:
27         get_info(url)
28         time.sleep(1)            #暫停程序,避免因提交網頁請求頻率過快而導致程序異常終止

請求頭獲取方式:打開chrome瀏覽器,輸入chrome://version,添加時加上‘User-Agent’:即可(獲得信息應置於' '中)。

select()使用方法:該方法類似於中國>廣東省>惠州市,從大到小,提取信息,可通過chrome復制得到,如圖示:

  注意:將li:nth-of-child(1)改為li

運行結果:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM