python爬虫豆瓣音乐top250 加上导出文件具体操作
时间: 2023-06-17 22:05:27 浏览: 156
好的,下面是具体操作步骤:
1. 导入需要的库
首先,我们需要导入一些必要的库,包括 requests、BeautifulSoup 和 pandas。如果你还没有安装这些库,可以使用 pip install 命令进行安装。
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
```
2. 获取音乐排行榜页面
我们需要从豆瓣音乐页面上获取音乐排行榜的数据。通过 requests 库可以很方便地获取页面的 HTML 代码,然后使用 BeautifulSoup 库解析 HTML 代码,获取我们需要的音乐信息。
```python
url = 'https://music.douban.com/top250'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
```
3. 提取音乐信息
通过分析音乐排行榜页面的 HTML 代码,我们可以发现每首歌曲的信息都包含在一个 class 为 'item' 的 div 标签中。我们可以使用 find_all() 方法提取出所有的 'item' 标签,然后从中提取出我们需要的信息,包括排名、歌名、艺术家、评分等。
```python
items = soup.find_all('div', class_='item')
music_list = []
for item in items:
rank = item.find('span', class_='top250-no').text.strip()
title = item.find('div', class_='pl2').find('a').text.strip()
artist = item.find('div', class_='pl2').find('p').text.strip().split('/')[0]
rating = item.find('span', class_='rating_num').text.strip()
music = {
'排名': rank,
'歌名': title,
'艺术家': artist,
'评分': rating
}
music_list.append(music)
```
4. 导出数据到文件
最后,我们可以使用 pandas 库将音乐信息导出到一个 CSV 文件中。
```python
df = pd.DataFrame(music_list)
df.to_csv('music_top250.csv', index=False, encoding='utf-8')
```
完整代码如下:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
url = 'https://music.douban.com/top250'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
items = soup.find_all('div', class_='item')
music_list = []
for item in items:
rank = item.find('span', class_='top250-no').text.strip()
title = item.find('div', class_='pl2').find('a').text.strip()
artist = item.find('div', class_='pl2').find('p').text.strip().split('/')[0]
rating = item.find('span', class_='rating_num').text.strip()
music = {
'排名': rank,
'歌名': title,
'艺术家': artist,
'评分': rating
}
music_list.append(music)
df = pd.DataFrame(music_list)
df.to_csv('music_top250.csv', index=False, encoding='utf-8')
```
运行完毕后,你就能在当前工作目录下看到一个名为 music_top250.csv 的文件,里面包含了豆瓣音乐排行榜前 250 首歌曲的信息。
阅读全文