python爬取网易云歌单

写在前面:

我的博客已迁移至自建服务器:博客传送门,CSDN博客暂时停止,如有机器学习方面的兴趣,欢迎来看一看。

此外目前我在gitHub上准备一些李航的《统计学习方法》的实现算法,目标将书内算法全部手打实现,欢迎参观并打星。GitHib传送门

背景

这学期报了一门海量数据处理,在数据处理前需要爬取一些内容。所以做了一个小练习,爬取网易云的歌单。其中包括歌单名称,播放量和url地址。
网易云还是具有一些反爬措施的,这里主要说以下几个方面以及我的应对措施。
  1. 无法直接访问
    我没有实践过直接访问网易云音乐会不会被报404,所以这一条本质上不太确定的,我的做法是直接在浏览器中通过F12查看请求头,在代码中将请求头加入其中以此来模拟我是浏览器访问的,但是后期因为使用了PhantomJS,也就不需要请求头的,后期的时候请求头就没有再用了。
  2. 动态页面加载
    动态的页面加载导致正常的页面爬虫无法工作,在浏览器上看到的很多内容,通过python读取到html后在内部找不到对应内容。对应的方法是使用PhantomJS。PhantomJS按照我自己的理解,是模拟了一个浏览器,这样子可以最大程度上让服务器认为我是普通用户的浏览器,从而防止被反爬。此外上一条中说到使用这个以后不需要再加请求头也是这个原因,我的身份已经变成了一个浏览器,所以也就不需要再使用请求头来伪装身份。
  3. PhantomJS效率过低
    PhantomJS毕竟是一个浏览器,在速度上有很大劣势,所以在使用时需要对其进行配置。从直观上来看,就是关闭浏览器的图片加载功能,打开浏览器缓存功能等等,所有的配置都和浏览器正常设置差不多,其代码如下:
service_args=[]
service_args.append('--load-images=no')  ##关闭图片加载
service_args.append('--disk-cache=yes
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值