python爬取音乐并保存_python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
爬取TOP500的音樂信息,包括排名情況、歌曲名、歌曲時間。
網頁版酷狗不能手動翻頁進行下一步的瀏覽,仔細觀察第一頁的URL:
這里嘗試將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數據庫中就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
總結
以上是生活随笔為你收集整理的python爬取音乐并保存_python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python nonetype_pyth
- 下一篇: python3.6.4_在ubuntu中