Python网络爬虫实践(1)

一、需求分析

爬取网易云音乐播放量大于1000万的歌单。

二、实施步骤

1.安装selenium

selenium是一个用于Web应用自动化程序测试的工具,测试直接运行在浏览器中,就像真正的用户在操作一样。这里我们只需打开CMD,输入

pip install selenium=2.48.0

即可自动下载安装成功。
注:如果不写明版本号,将会自动下载最新版本,最新版的Selenium 已经弃用 PhantomJS ,那就只能使用火狐或者谷歌无界面浏览器。

2.安装PhantomJS

PhantomJS可以把网站加载到内存并执行页面上的JavaScript,但是它不会向用户展示网页的图形界面。Python可以使用selenium执行javascript,selenium可以让浏览器自动加载页面,获取需要的数据。selenium自己不带浏览器,这里为了提高效率,使用headless浏览器如PhantomJS在后台执行。
PhantomJS需要我们到官网下载,然后将其解压,只需将执行文件移动到Python安装目录的Scripts文件夹内即可,如图:

3.确定要爬取的数据

首先,我们进入网易云音乐歌单首页:http://music.163.com/#/discover/playlist/?order=hot&cat=%E5%85%A8%E9%83%A8&limit=35&offset=0,通过谷歌浏览器,按F12,找到我们要爬取的数据,如下图:

播放数:class = “nb” 封面:class=”msk” ,有标题(title)和链接(“msk”)

4.实现代码

from selenium import webdriver
import csv
#网易云音乐歌单首页的url
url = 'http://music.163.com/#/discover/playlist?order=hot&cat=%E5%85%A8%E9%83%A8&limit=35&offset=0'
#用PhantomJS接口创建一个Selenium的Webdriver
driver = webdriver.PhantomJS()
#创建储存歌单的文件
csv_file = open("playlist.csv","w",newline='')
writer = csv.writer(csv_file)
writer.writerow(['标题','播放数','链接'])
#解析每一页,直到下一页为空
while url != 'javascript:void(0)':# 用WebDriver加载页面driver.get(url)# 切换到内容的iframedriver.switch_to.frame("contentFrame")# 定位歌单标签data = driver.find_element_by_id("m-pl-container").find_elements_by_tag_name("li")#解析每一页的所有歌单for i in range(len(data)):#获取播放数nb = data[i].find_element_by_class_name("nb").textif '万' in nb and int(nb.split("万")[0]) > 1000:#获取播放数大于1000万的歌单封面msk = data[i].find_element_by_css_selector("a.msk")#把封面标题,连接,播放数写到文件writer.writerow([msk.get_attribute('title'),nb,msk.get_attribute('href')])#定位下一页的urlurl = driver.find_element_by_css_selector("a.zbtn.znxt").get_attribute('href')
csv_file.close()

运行结束后,我们可在程序目录看到所生成的.csv文件,打开可看到所爬取的数据。如下图所示:


参考资料:
1. 手把手教你写网络爬虫
2. selenium + PhantomJS使用时 PhantomJS报错解决
3.Selenium + PhantomJS + python 简单实现爬虫的功能

Python网络爬虫实践(1):爬取网易云音乐播放量大于1000万的歌单相关推荐

  1. 爬取网易云音乐播放量大于1000万的爬虫代码

    # -*- coding: utf-8 -*- #原博客:http://python.jobbole.com/89091/#article-comment.本人做了部分错误的修改,下面是在Anacon ...

  2. 【python】爬虫入门:爬取网易云音乐的歌曲评论、用户歌单、用户听歌记录等

    目录 一.概述 二.爬取流程 1.爬取评论 1.1.资源定位 1.2.爬取准备 1.3.代码实现 2.爬取听歌记录 2.1.资源定位 2.2.爬取准备 2.3.js劫持 三.总结 一.概述 第一次学爬 ...

  3. python爬虫No.1|爬取网易云音乐歌手的前50首歌曲ID及名字

    自学pythonのNo.5 引语 知识总结 Requests XPath 案例 曾经有这样的梗黑网易云音乐 实际上网易云是很不错的音乐软件之一.这个梗挺让我不舒服的,挫折谁都有,矫情没必要但对矫情之人 ...

  4. 爬虫练习:爬取网易云音乐热歌榜全部歌曲的热门评论

    目标:爬取网易云音乐热歌榜中全部歌曲(共200首)的热门评论(每首歌有15个热门评论) 分析: 需要分两步走,第一步是定位到热歌榜单所在的资源,从而得到这热歌榜中到底有哪些歌并获得每首歌的id:第二步 ...

  5. Scrapy 爬取网易云音乐播放量百万以上的歌单以及歌单详情

    创建爬虫 查看歌单链接 https://music.163.com/#/discover/playlist 用 requests 下载此链接的网页发现不是原网页,应该是被跳转到了登录页面.分析之后得到 ...

  6. Python 网络爬虫实战:爬取 B站《全职高手》20万条评论数据

    本周我们的目标是:B站(哔哩哔哩弹幕网 https://www.bilibili.com )视频评论数据. 我们都知道,B站有很多号称"镇站之宝"的视频,拥有着数量极其恐怖的评论和 ...

  7. python爬虫音乐犯法么_Python爬虫案例:爬取网易云音乐

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:Jonsson 喜欢的朋友欢迎关注小编,除了分享技术文章之外还有很多 ...

  8. 使用Puppeteer轻松爬取网易云音乐、QQ音乐的精品歌单

    背景 最近在学习Puppeteer进行自动化操作,另一方面为了防止上班时间被打扰,是时候爬点歌单在上班的时候,用来抵抗外界的干扰了. 地址 项目完整代码地址:github.com/BingKui/We ...

  9. python网络爬虫网易云音乐下载_python网络爬虫爬取网易云音乐

    #爬取网易云音乐 url="https://music.163.com/discover/toplist" #歌单连接地址 url2 = 'http://music.163.com ...

最新文章

  1. Symfony学习笔记
  2. ICLR2020 NLP优秀论文分享(附源码)
  3. 软件获取手机的ime权限_【手机谷歌软件下载】【安卓+iOS】老湿机最爱~免翻,获取各种“特殊”资源!...
  4. GDCM:gdcm::DefinedTerms的测试程序
  5. 直接将自身代码注入傀儡进程
  6. 数据中台离数据资产“价值变现”还有多远?
  7. java分享知识点_Java基础知识点整理(一)
  8. android 屏保程序,Android开发中屏保程序
  9. 嫡权法赋权法_三种权重赋权法的比较分析
  10. 全球及中国建筑设计行业十四五发展方向与投资决策建议报告2022版
  11. 关于File()中的pathname的路径
  12. 读书笔记-Iass、Pass、SasS 、DaaS
  13. ios文件连接 百度网盘服务器,iOS系统教程:iphone怎么解压百度网盘文件
  14. linux 交换机tftp服务,简单文件传输TFTP服务器搭建 Linux RHEL6
  15. SAP实施案例之亨得利集团
  16. geolocation.js
  17. 在阿里云服务器上配置端口步骤
  18. 项目申请PPT经验总结
  19. matomo安装及使用
  20. 十大事件与Java相关的四十个名字之浅谈篇

热门文章

  1. TI物料电子元器件芯片LM3402MM/NOPB
  2. 每日学习 与 每日未知
  3. 在LLVM中编写pass的详细教程(3)
  4. 一年三轮融资3亿 深睿医疗领跑AI医疗行业
  5. virgo tomcat
  6. 这份新年豪礼面试锦囊,真舍不得给你们!
  7. Ubuntu18.04录屏并生成gif图片
  8. Instagram Win10 UWP版更新:新增故事滤镜等大波功能
  9. 上传文件计算机传输的,文件全能王怎么把文件传到电脑上 文件全能王文件上传到电脑教程...
  10. CTF.show:新春红包题wp