python3 實(shí)現(xiàn)爬取TOP500的音樂信息并存儲(chǔ)到mongoDB數(shù)據(jù)庫中
爬取TOP500的音樂信息,包括排名情況、歌曲名、歌曲時(shí)間。
網(wǎng)頁版酷狗不能手動(dòng)翻頁進(jìn)行下一步的瀏覽,仔細(xì)觀察第一頁的URL:
http://www.kugou.com/yy/rank/home/1-8888.html
這里嘗試將1改為2,再進(jìn)行瀏覽,恰好是第二頁的信息,再改為3,恰好是第三頁的信息,多次嘗試發(fā)現(xiàn)不同的數(shù)字即為不同的頁面。因此只需更改home/后面的數(shù)字即可。由于每頁顯示的為22首歌曲,所以總共需要23個(gè)URL。
import requests from bs4 import BeautifulSoup from time import sleep import pymongo #連接數(shù)據(jù)庫 client = pymongo.MongoClient(‘localhost',27017) mydb = client[‘yourdb'] #創(chuàng)建數(shù)據(jù)庫 musicTop = mydb[‘musicTop'] #使用header是用于偽裝為瀏覽器,讓爬蟲更穩(wěn)定 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' } #定義獲取信息的函數(shù) def get_info(url): wd_data = requests.get(url,headers=Headers) soup = BeautifulSoup(wd_data.text,‘lxml') #獲取排名情況 ranks = soup.select(‘span.pc_temp_num') #獲取標(biāo)題 titles = soup.select(‘div.pc_temp_songlist > ul > li > a') #獲取時(shí)間 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) #存入數(shù)據(jù)庫中 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)
運(yùn)行后,爬取的數(shù)據(jù)在mongoDB數(shù)據(jù)庫中顯示如下:
以上這篇python3 實(shí)現(xiàn)爬取TOP500的音樂信息并存儲(chǔ)到mongoDB數(shù)據(jù)庫中就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python時(shí)間處理模塊Time和DateTime
這篇文章主要為大家介紹了Python時(shí)間處理模塊Time和DateTime使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06Django實(shí)現(xiàn)任意文件上傳(最簡單的方法)
這篇文章主要介紹了Django實(shí)現(xiàn)任意文件上傳,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06基于pytorch的RNN實(shí)現(xiàn)字符級姓氏文本分類的示例代碼
當(dāng)使用基于PyTorch的RNN實(shí)現(xiàn)字符級姓氏文本分類時(shí),我們可以使用一個(gè)非常簡單的RNN模型來處理輸入的字符序列,并將其應(yīng)用于姓氏分類任務(wù),本文給大家舉了一個(gè)基本的示例代碼,需要的朋友可以參考下2023-12-12