url = 'https://music.163.com/api/v1/resource/comments/R_SO_4_{}?limit=20&offset={}'
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'
# 这里的id是网易云歌曲链接中的数字,可以根据不同的歌曲进行更改
song_id = '480840953'
# 存储评论的列表
comments_list = []
# 循环获取评论
for i in range(5):
url_request = url.format(song_id, i*20)
response = requests.get(url_request, headers=headers)
result = json.loads(response.text)
comments = result['comments']
for comment in comments:
comment_time = comment['time'] # 评论时间
comment_like = comment['likedCount'] # 点赞数
comment_content = comment['content'] # 评论内容
comment_nickname = comment['user']['nickname'] # 用户昵称
comment_info = [comment_time, comment_like, comment_content, comment_nickname] # 存储评论信息的列表
comments_list.append(comment_info)
with open('comments.csv', 'w', encoding='utf-8', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(['评论时间', '点赞数', '评论内容', '用户昵称']) # 写入表头
for comment in comments_list:
writer.writerow(comment) # 写入评论信息
完整代码如下:
用python爬取网易云排行榜歌曲
第一次发表自己的东西,很是胆颤,如有不对的地方,希望大家多指教!
思路:打开网址→解析音乐id→结合接口生成下载url→下载音乐→保存本地
需要用到的库文件:
import requests
from lxml import etree
import os
import re
import time
from random import randint
#使用...
因为数据要存入Excel中,所以首要目标是找个办法将数据能够存入excel中
经过在网上一番搜索后,发现用python里的xlwt模块可以比较容易的解决
一、准备工作
1、安装xlwt模块:
可以看http://blog.csdn.net/junli_chen/article/details/53666309这篇文章
不过好像也可以直接在cmd里用 pip install xlwt 命令
最近在学Python爬虫,看了B站爬取网易云音乐评论的视频,在此代码的基础上做了扩展。视频中是将评论存入json文件,并且没有进行解析数据,爬取的是一首歌的全部评论。
我在此基础上拓展了三点:
1.可以爬取热歌榜200首歌曲的精彩评论;
2.将评论进行解析,提取出评论的内容、时间、用户、歌曲名字等信息;
3.将爬取的信息存入txt文本文件或者mysql数据库中。
参考代码存入txt文本文件代码存入Mysql数据库代码
下面是我的一小点分析,代码附在最后
from selenium import webdriver # 导入浏览器的功能
import re # 正则表达式模块, 内置
import time # 时间模块, 程序延迟
1. 创建一个浏览
from bs4 import BeautifulSoup
url = 'https://music.163.com/discover/toplist?id=3778678' # 网易云音乐热歌榜的URL
headers = {
'Referer': 'https://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'
} # 请求头部信息
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
song_list = soup.find('ul', class_='f-hide').find_all('a') # 获取歌曲列表
for song in song_list:
print(song.text) # 输出歌曲名称
运行上述代码,即可爬取网易云音乐热歌榜的歌曲列表。同理,如果要爬取飙升榜的歌曲列表,只需将URL改为`'https://music.163.com/discover/toplist?id=19723756'`即可。
CSDN-Ada助手:
人工智能在现代科技中的应用和未来发展趋势
CSDN-Ada助手:
解释 RESTful API,以及如何使用它构建 web 应用程序
CSDN-Ada助手: