python爬取网易云音乐_Python项目实战:爬取网易云音乐评论的昵称,评论的时间,评论点赞量,评论,并保存在本地的表格里

时间: 2024-04-29 07:13:00 浏览: 15
好的,我可以帮您实现这个爬虫项目。首先,我们需要用到requests库和BeautifulSoup库来获取网页内容和解析网页。 首先,我们需要找到网易云音乐评论的接口,这个接口可以通过抓包工具获取。我们可以使用Chrome浏览器的开发者工具来获取接口链接。打开网易云音乐的歌曲页面,找到评论区,点击“查看更多评论”,然后按下F12键,打开开发者工具,在Network选项卡下可以看到所有的网络请求。找到名为“comments”的请求,这就是我们需要的评论接口。 接下来,我们可以使用Python代码发送请求,并解析返回的JSON数据来获得评论信息。以下是完整代码实现: ``` import requests import json import time import csv headers = { 'Referer': 'http://music.163.com/', 'Host': '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' } def get_comments(url): # 获取歌曲ID song_id = url.split('=')[1] # 定义评论列表 comments_list = [] # 定义偏移量和总评论数 offset = 0 total = 99999999 # 定义CSV文件名和表头 csv_name = '{}.csv'.format(song_id) headers = ['nickname', 'time', 'likedCount', 'comment'] # 循环获取评论 while offset < total: # 构造请求参数 params = { 'csrf_token': '', 'offset': offset, 'limit': '100', 'oid': song_id, 'type': '0' } # 发送请求 response = requests.post('http://music.163.com/api/v1/resource/comments/R_SO_4_{}?csrf_token='.format(song_id), headers=headers, params=params) # 解析JSON数据 data = json.loads(response.text) # 更新偏移量和总评论数 offset += len(data['comments']) total = data['total'] # 遍历评论列表,提取相关信息 for comment in data['comments']: nickname = comment['user']['nickname'] time = comment['time'] likedCount = comment['likedCount'] content = comment['content'] # 将评论信息添加到列表中 comments_list.append([nickname, time, likedCount, content]) # 暂停1秒,防止过于频繁的请求 time.sleep(1) # 将评论信息保存到CSV文件中 with open(csv_name, 'w', encoding='utf-8', newline='') as f: writer = csv.writer(f) writer.writerow(headers) writer.writerows(comments_list) print('Done!') if __name__ == '__main__': url = input('请输入网易云音乐歌曲链接:') get_comments(url) ``` 代码中的headers是请求头,其中Referer和Host是必须的。get_comments函数用于获取评论信息并保存到CSV文件中。首先,我们需要从URL中获取歌曲ID,然后定义评论列表、偏移量和总评论数、CSV文件名和表头。接下来,在循环中构造请求参数,并发送请求。解析JSON数据,将评论信息添加到列表中。最后,将评论信息保存到CSV文件中。 注意:由于网易云音乐的反爬虫机制比较严格,过于频繁的请求可能会导致IP被封禁,因此需要适当地设置请求间隔时间。另外,由于CSV文件中可能包含特殊字符,因此需要使用utf-8编码来保存文件。 希望这个代码可以帮助到您!

相关推荐

最新推荐

recommend-type

python 爬取马蜂窝景点翻页文字评论的实现

主要介绍了python 爬取马蜂窝景点翻页文字评论的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
recommend-type

python 爬取豆瓣电影评论,并进行词云展示

# -*-coding:utf-8-*- import urllib.request from bs4 import BeautifulSoup def getHtml(url): """获取url页面""" headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, ...
recommend-type

Python爬取数据保存为Json格式的代码示例

今天小编就为大家分享一篇关于Python爬取数据保存为Json格式的代码示例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
recommend-type

Python爬取数据并写入MySQL数据库的实例

今天小编就为大家分享一篇Python爬取数据并写入MySQL数据库的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
recommend-type

Python爬取数据并实现可视化代码解析

主要介绍了Python爬取数据并实现可视化代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

可见光定位LED及其供电硬件具体型号,广角镜头和探测器,实验设计具体流程步骤,

1. 可见光定位LED型号:一般可使用5mm或3mm的普通白色LED,也可以选择专门用于定位的LED,例如OSRAM公司的SFH 4715AS或Vishay公司的VLMU3500-385-120。 2. 供电硬件型号:可以使用常见的直流电源供电,也可以选择专门的LED驱动器,例如Meanwell公司的ELG-75-C或ELG-150-C系列。 3. 广角镜头和探测器型号:一般可采用广角透镜和CMOS摄像头或光电二极管探测器,例如Omron公司的B5W-LA或Murata公司的IRS-B210ST01。 4. 实验设计流程步骤: 1)确定实验目的和研究对象,例如车辆或机器人的定位和导航。
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。