python爬取音乐排行_python爬取网易云音乐热歌榜实例代码
时间: 2023-10-04 20:13:23 浏览: 775
以下是用 Python 爬取网易云音乐热歌榜的实例代码:
```python
import requests
from bs4 import BeautifulSoup
url = 'https://music.163.com/discover/toplist'
headers = {
'Referer': 'https://music.163.com/',
'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'
}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
song_list = soup.find_all('div', class_='ttc')
for song in song_list:
print(song.a.attrs['title'])
```
解析:
1. 使用 requests 模块请求网页源代码。
2. 使用 BeautifulSoup 模块解析网页源代码,并通过类名查找到歌曲列表。
3. 遍历歌曲列表,获取每首歌曲的名称并输出。
相关问题
python爬取网易云音乐飙升榜音乐_python爬取网易云音乐热歌榜 python爬取网易云音乐热歌榜实例代码...
好的,以下是 Python 爬取网易云音乐热歌榜的实例代码:
```python
import requests
from bs4 import BeautifulSoup
url = 'https://music.163.com/discover/toplist?id=3778678'
headers = {
'Referer': 'https://music.163.com/',
'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'}
res = requests.get(url, headers=headers)
soup = BeautifulSoup(res.text, 'html.parser')
song_list = soup.find('ul', {'class': 'f-hide'}).find_all('a')
for song in song_list:
print(song.text)
```
这个代码会爬取网易云音乐热歌榜上的歌曲名,并输出到控制台。你可以根据自己的需要进行修改。注意要添加请求头,否则会被网易云音乐拒绝访问。
selenium爬取网易音乐云热歌榜
Selenium是一个流行的自动化测试工具,它也可以用于网页抓取,包括爬取数据。要在Selenium中爬取网易云音乐的云热歌榜,你需要按照以下步骤操作:
1. 安装依赖:首先需要安装Python的Selenium库,可以使用pip命令`pip install selenium`。另外,还需要一个浏览器驱动,比如ChromeDriver。
2. 导入库并初始化:导入Selenium的webdriver模块,如`from selenium import webdriver`,然后创建一个新的浏览器实例,如`driver = webdriver.Chrome()`。
3. 打开网页:使用`driver.get('https://music.163.com/rank/hot/')`打开网易云音乐的热歌榜页面。
4. 等待加载:因为Selenium会等待页面元素完全加载后再执行后续操作,所以通常会加入一个`time.sleep()`延迟或者使用`WebDriverWait`来进行条件判断。
5. 查找元素:找到特定的HTML元素,例如歌曲名、歌手等信息所在的DOM元素。这通常通过`driver.find_elements_by_css_selector`或`driver.find_element_by_xpath`来完成。
6. 数据提取:定位到元素后,你可以使用`.text`属性获取文本内容,如果需要其他属性,可以根据需要进一步处理。
7. 存储数据:将爬取的数据存储到文件或数据库中,例如CSV、JSON或数据库表。
```python
# 示例代码
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get("https://music.163.com/rank/hot/")
time.sleep(3) # 等待页面加载
song_titles = driver.find_elements_by_css_selector('.hot-song-item > a')
songs = []
for title in song_titles:
songs.append(title.text)
# 存储数据
with open('hot_songs.txt', 'w', encoding='utf-8') as f:
for song in songs:
f.write(f'{song}\n')
driver.quit()
```
阅读全文