用python写一个爬取网易云音乐精彩评论的爬虫代码,并创建一个excel文件保存数据,保存热评用户名称,其评论的歌曲名称,评论内容,评论发布时间,是否为VIP,以及点赞数
时间: 2024-03-11 18:46:33 浏览: 26
好的,以下是Python的爬虫代码,可以爬取网易云音乐的热门评论,并将数据保存到Excel文件中。请注意,此代码仅供学习和参考,使用时请遵守相关法律法规和网站规定。
```python
import requests
from bs4 import BeautifulSoup
import openpyxl
# 爬取网页的函数
def get_html(url):
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'}
response = requests.get(url, headers=headers)
response.encoding = 'utf-8'
if response.status_code == 200:
return response.text
else:
return None
# 解析网页并返回评论数据的函数
def parse_html(html):
soup = BeautifulSoup(html, 'html.parser')
comments = []
comment_list = soup.find_all('div', class_='comment_item')
for comment_item in comment_list:
# 获取评论的用户名
user_name = comment_item.find('a', class_='s-fc7').text
# 获取评论的歌曲名称
song_name = comment_item.find('a', class_='s-fc7', href=True).text
# 获取评论内容
content = comment_item.find('div', class_='comment_txt').text.strip()
# 获取评论发布时间
time = comment_item.find('div', class_='time').text.strip()
# 判断是否为VIP
vip = comment_item.find('span', class_='vip') is not None
# 获取点赞数
like_count = comment_item.find('a', class_='zan').text.strip()
comments.append([user_name, song_name, content, time, vip, like_count])
return comments
# 将评论数据保存到Excel文件的函数
def save_to_excel(comments):
wb = openpyxl.Workbook()
sheet = wb.active
sheet.title = 'comments'
sheet['A1'] = '用户名'
sheet['B1'] = '歌曲名称'
sheet['C1'] = '评论内容'
sheet['D1'] = '发布时间'
sheet['E1'] = '是否为VIP'
sheet['F1'] = '点赞数'
for comment in comments:
sheet.append(comment)
wb.save('comments.xlsx')
# 主函数
def main():
url = 'https://music.163.com/#/song?id=1407551413'
html = get_html(url)
comments = parse_html(html)
save_to_excel(comments)
print('评论数据已保存到Excel文件中。')
if __name__ == '__main__':
main()
```
请将代码中的网址改为您需要爬取的网易云音乐歌曲的网址,并确保您已经安装了必要的Python库(requests、beautifulsoup4、openpyxl)。