您好,登錄后才能下訂單哦!
小編給大家分享一下python3如何實現爬取TOP500的音樂信息并存儲到mongoDB數據庫中,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
爬取TOP500的音樂信息,包括排名情況、歌曲名、歌曲時間。
這里嘗試將1改為2,再進行瀏覽,恰好是第二頁的信息,再改為3,恰好是第三頁的信息,多次嘗試發現不同的數字即為不同的頁面。因此只需更改home/后面的數字即可。由于每頁顯示的為22首歌曲,所以總共需要23個URL。
import requests from bs4 import BeautifulSoup from time import sleep import pymongo #連接數據庫 client = pymongo.MongoClient(‘localhost',27017) mydb = client[‘yourdb'] #創建數據庫 musicTop = mydb[‘musicTop'] #使用header是用于偽裝為瀏覽器,讓爬蟲更穩定 Headers = { ‘User-Agent': ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36' } #定義獲取信息的函數 def get_info(url): wd_data = requests.get(url,headers=Headers) soup = BeautifulSoup(wd_data.text,‘lxml') #獲取排名情況 ranks = soup.select(‘span.pc_temp_num') #獲取標題 titles = soup.select(‘div.pc_temp_songlist > ul > li > a') #獲取時間 times = soup.select(‘span.pc_temp_tips_r > span') for rank,title,time in zip(ranks,titles,times): data = { ‘rank':rank.get_text().strip(), ‘singer':title.get_text(), ‘song':title.get_text(), ‘time':time.get_text().strip() } musicTop.insert_one(data) #存入數據庫中 if name == ‘main': urls = [‘http://www.kugou.com/yy/rank/home/{}-8888.html'.format(number) for number in range(1,24)] for url in urls: get_info(url) sleep(2)
運行后,爬取的數據在mongoDB數據庫中顯示如下:
看完了這篇文章,相信你對“python3如何實現爬取TOP500的音樂信息并存儲到mongoDB數據庫中”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。