python实例豆瓣音乐代码_实例学习——爬取豆瓣音乐TOP250数据
时间: 2023-09-18 08:10:32 浏览: 55
好的,以下是Python爬取豆瓣音乐TOP250数据的代码实例:
```python
import requests
from bs4 import BeautifulSoup
url = 'https://music.douban.com/top250'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
def get_music_info(url):
res = requests.get(url, headers=headers)
soup = BeautifulSoup(res.text, 'html.parser')
music_list = soup.find('div', class_='article').find_all('tr', class_=lambda x:x and x.startswith('item'))
for music in music_list:
rank = music.find('td', class_='').get_text().strip()
music_name = music.find('div', class_='pl2').find('a').get_text().strip()
music_info = music.find('div', class_='pl2').find('p').get_text().strip().split('/')
music_artist = music_info[0].strip()
music_album = music_info[1].strip()
music_year = music_info[2].strip() if len(music_info) == 4 else ''
music_rating = music.find('span', class_='rating_nums').get_text().strip()
music_votes = music.find('span', class_='pl').get_text().strip()
print("排名:{}\n歌曲名:{}\n歌手:{}\n专辑名:{}\n发行年份:{}\n评分:{}\n评论数:{}\n".format(rank, music_name, music_artist, music_album, music_year, music_rating, music_votes))
for i in range(0, 250, 25):
get_music_info(url + '?start=' + str(i))
```
这个程序使用了requests和BeautifulSoup库来爬取豆瓣音乐TOP250的数据。程序首先定义了请求的URL和请求头部,然后使用requests库来获取网页的HTML文本内容,并使用BeautifulSoup库来解析HTML文本内容。
程序中的`get_music_info`函数用来获取每个音乐的详细信息,并将信息打印出来。在主程序中,我们将URL的`start`参数从0循环到225,每次调用`get_music_info`函数来获取一页的数据。
希望这个实例能够帮到你!