最近在研究怎么爬取网易云音乐的热门评论,发现使用selenium是最简单的,话不多说直接上思路步骤。

首先查看网页源代码发现在源代码里发现找不到歌曲的信息,可以得知是动态网页。

打开开发者工具的Network进行抓包,发现歌曲信息是存放在这个包里面的

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36','cookie': '*********'  # 如果不添加cookie信息,请求返回的信息会提示你为登录}
data = {'params': '6wxc4PLp9lMOQMu+FF93NbG3bFpEeA6clr9Bm2FjxcQkJyWlFVYgWasxQoxzDo43qwn1jYIji1/niLYLhXNnahmUtBuMYM79OKfp2Er0AKZ/wml3breegMfEZRP+odvJL+oOzcr+RWv4iXCWpBkKDpUogQvC6eHtUegXGQ9zV25O5rlgblCcOCbjyXYo2VSfL2FrV2IG2l9L91Jvjatm+XBSWYldqioI4bpp4A6/w0Y=','encSecKey': '5eb65b40a5489771b0f4cd3e6e180c5ddc8da10d497d6c08d041d3a3505543955eb7d90cc2090c30aa9b25136bfecaa527cfbc37202837f8c4f0a4bfa92ee96a2763d5d0830a33f3b1dfc490da4a53fe1600096672602360c1d5e51999835ce33eed779cb1477497d6f44c92d7d3f9fd818ad89629bece6b52ee3a3ea6a85d96'
}url = 'https://music.163.com/weapi/v6/playlist/detail?csrf_token=6df352b352dc3cb87e62c7d77338d19d'
res = requests.post(url, data=data, headers=headers)  # post请求需要添加data数据

打开网址发现返回来的数据是json格式的,从json信息中获取每首歌曲的id,并通过id进入到详细页面。

html = json.loads(res.text)
infos = html['playlist']['tracks']
for info in infos:id = str(info['id'])  # 获取每首歌曲的id号detail_url = 'https://music.163.com/#/song?id={}'.format(id)  # 拼接歌曲详细链接

创建一个无头浏览器,不会显示在后台运行。

    option = webdriver.ChromeOptions()option.add_argument('headless')driver = webdriver.Chrome(chrome_options=option)driver.get(detail_url)driver.implicitly_wait(10)  # 隐式等待;浏览器渲染页面;智能化等待driver.maximize_window()  # 最大化浏览器

进入歌曲详细页爬取热门评论信息。

    # 网页嵌套,进入嵌套网页driver.switch_to.frame(0)# 下拉操作# document.documentElement.scrollTop  指定页面的高度# document.documentElement.scrollHeight  获取页面的高度js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight'driver.execute_script(js)divs = driver.find_elements_by_xpath('//div[@class="itm"]')[:10]  # 抓取每首歌曲热门评论的前十个for div in divs:cnt = div.find_element_by_css_selector('.cnt.f-brk').text  # 获取评论cnt = cnt.replace('\n', ' ')  # 换行符替换成空格cnt = re.findall(':(.*)', cnt)[0]  # 把作者给去除,只要评论print(cnt)driver.quit()  # 关闭浏览器,以免占用资源with open('网易云热门评论.txt', mode='a', encoding='utf-8') as f:f.write(cnt + '\n')

运行结果:

源代码

import requests
from selenium import webdriver
import json
import reheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36','cookie': '******'}
data = {'params': '6wxc4PLp9lMOQMu+FF93NbG3bFpEeA6clr9Bm2FjxcQkJyWlFVYgWasxQoxzDo43qwn1jYIji1/niLYLhXNnahmUtBuMYM79OKfp2Er0AKZ/wml3breegMfEZRP+odvJL+oOzcr+RWv4iXCWpBkKDpUogQvC6eHtUegXGQ9zV25O5rlgblCcOCbjyXYo2VSfL2FrV2IG2l9L91Jvjatm+XBSWYldqioI4bpp4A6/w0Y=','encSecKey': '5eb65b40a5489771b0f4cd3e6e180c5ddc8da10d497d6c08d041d3a3505543955eb7d90cc2090c30aa9b25136bfecaa527cfbc37202837f8c4f0a4bfa92ee96a2763d5d0830a33f3b1dfc490da4a53fe1600096672602360c1d5e51999835ce33eed779cb1477497d6f44c92d7d3f9fd818ad89629bece6b52ee3a3ea6a85d96'
}url = 'https://music.163.com/weapi/v6/playlist/detail?csrf_token=6df352b352dc3cb87e62c7d77338d19d'
res = requests.post(url, data=data, headers=headers)
html = json.loads(res.text)
infos = html['playlist']['tracks']
for info in infos:id = str(info['id'])detail_url = 'https://music.163.com/#/song?id={}'.format(id)option = webdriver.ChromeOptions()option.add_argument('headless')driver = webdriver.Chrome(chrome_options=option)driver.get(detail_url)driver.implicitly_wait(10)  # 隐式等待;浏览器渲染页面;智能化等待driver.maximize_window()# 网页嵌套,进入嵌套网页driver.switch_to.frame(0)# 下拉操作# document.documentElement.scrollTop  指定页面的高度# document.documentElement.scrollHeight  获取页面的高度js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight'driver.execute_script(js)divs = driver.find_elements_by_xpath('//div[@class="itm"]')[:10]for div in divs:cnt = div.find_element_by_css_selector('.cnt.f-brk').textcnt = cnt.replace('\n', ' ')cnt = re.findall(':(.*)', cnt)[0]print(cnt)driver.quit()with open('网易云热门评论.txt', mode='a', encoding='utf-8') as f:f.write(cnt + '\n')

使用selenium爬取网易云热门评论(超详细)相关推荐

  1. Selenium爬取网易云音乐评论

    Selenium爬取网易云音乐评论 一.爬取工具 1.1 selenium ​ selenium这是一个第三方库我们可以通过 pip install selenium来安装这个第三方库. ​ Sele ...

  2. 用Python爬取网易云热门评论(亲测有效)

    功能展示: 在网页版网易云随便找一首歌曲复制此歌曲的链接. 接着在文件夹里面有个hot_comments.txt的文件夹,里面就是我们要获取的热门评论. 结果对比: 源码附上: # Requests模 ...

  3. Python爬虫——selenium爬取网易云评论并做词云

    大家好!我是霖hero 到点了上号网易云,很多人喜欢到夜深人静的时候,在网易云听音乐发表评论,正所谓:自古评论出人才,千古绝句随口来,奈何本人没文化,一句卧槽行天下!评论区集结各路大神,今天我们来爬取 ...

  4. golang+es 爬取网易云音乐评论

    目的和准备 目的: 为了知道自己歌单中每首歌的评论,然后通过歌曲id来检索这首歌的所有评论,并且想熟悉运用golang中的channel以及整个爬虫架构 准备: 语言:golang 编辑器: gola ...

  5. golang+es爬取网易云音乐评论

    目的和准备 目的: 为了知道自己歌单中每首歌的评论,然后通过歌曲id来检索这首歌的所有评论,并且想熟悉运用golang中的channel以及整个爬虫架构 准备: 语言:golang 编辑器: gola ...

  6. python爬取评论_python爬取网易云音乐评论

    本文实例为大家分享了python爬取网易云音乐评论的具体代码,供大家参考,具体内容如下 import requests import bs4 import json def get_hot_comme ...

  7. python爬取网易云音乐评论并进行可视化分析

    2019独角兽企业重金招聘Python工程师标准>>> 前言 今天为大家一个爬取网易云音乐评论的Python案例,并用Python的第三方库来进行可视化分析,生成图表样式,可以清晰地 ...

  8. python爬取网易云歌单_详解python selenium 爬取网易云音乐歌单名

    目标网站: 首先获取第一页的数据,这里关键要切换到iframe里 打印一下 获取剩下的页数,这里在点击下一页之前需要设置一个延迟,不然会报错. 结果: 一共37页,爬取完毕后关闭浏览器 完整代码: u ...

  9. python爬取网易云音乐热评_python爬取网易云音乐评论

    本文实例为大家分享了python爬取网易云音乐评论的具体代码,供大家参考,具体内容如下 import requests import bs4 import json def get_hot_comme ...

最新文章

  1. Tomcat架构(二)
  2. QML基础类型之var
  3. 用shell批量转储表
  4. AtCoder Beginner Contest 175总结
  5. java 字母金字塔_LeetCode756:金字塔转换矩阵(JAVA题解)
  6. 【GStreamer开发】GStreamer基础教程07——多线程和Pad的有效性
  7. linux搭建博客-day 7安装Nginx
  8. linux python指令大全,Linux常用指令
  9. 真正解决办法:编译freeswitch错误,You must install libavformat-dev to build mod_av
  10. 飞天诚信ROCKEY-ARM(标准锁)软件加密狗使用记录
  11. 归并排序JAVA实现(详解)
  12. vba基础 个人学习详细笔记 知识点梳理 -- 大白话篇
  13. 问题解决:wireshark之npcap无法安装、winpcap无法安装问题解决
  14. 必备!Mac上的硬盘测速专家Blackmagic Disk Speed Test
  15. 图像处理学习笔记2.0
  16. 【蓝桥杯】计算指定日期为当年第几天
  17. 【分享Oracle练习二】
  18. python 自动发微博_用 Python 自动定时发微博
  19. GBase 8a事务控制
  20. 软件工程学习笔记(五)~面向对象测试

热门文章

  1. Zookeeper基础笔记——从小白到入门
  2. 1218学习笔记——kvm上vm+vtpm(IMA)
  3. iOS偏好设置的存储注意事项
  4. python日历模块_Python calendar日历模块的说明
  5. JAVA毕业设计服装连锁店后台管理系统计算机源码+lw文档+系统+调试部署+数据库
  6. edge浏览器仿真IE时发现的问题
  7. 史上最全vue优化方案
  8. 电脑重启很久一直在转_电脑重启后鼠标一直在转圈怎么办
  9. Pandas数据分析及可视化应用实践
  10. 什么是超视频时代的用户体验法则?