最近三天由于功能需求,在编写面向各大音乐网站的网络爬虫。起初以为工作量不是很大,只是简单的重复而已,后来发现事情没有那么简单。

首先是30日晚简单地试了一下各大音乐网站的功能,得出结论能使用的有酷我音乐,百度音乐,酷狗音乐(网易云很想用,但是不符合需求。虾米没来得及测试)。第二天开始进行爬虫测试。对酷狗音乐,照例先是GET主页,结果出乎意料,收到了一个循环重定向向主页的response。通过查询后来发现,可能是酷狗的保护措施。对于GET请求会返回一个带cookie的重定向response,这样在客户端第二次GET主页时可以成功拿到主页。然而,通过查看返回的报头来看,重定向response并没有cookie(不然就不会报错)。多次尝试无果,就先搁置了对酷狗的爬虫转而向酷我发展。

酷我音乐好像并没有那些套路,我没有测试。因为我找到了API,也因为找到了API却使用了错误方法而延误了一天。在对酷我API申请数据时将postdata与url通过urllib.request合并为一个request了。以至于一直收到‘参数错误’的回复。然后受到返回信息误导,一直在琢磨参数错在哪儿了。失败,就暂且放弃了。

百度音乐是最轻松的一个。直接爬虫网页(没有使用API),找歌曲节点,获取节点属性,结束。

由于网易云是自己使用的音乐app,所以一直想借用它的资源实现自己的功能。无奈网易云的外链虽好,可没有自动获取id的方法也是徒劳。不死心,开始爬网易云。主页GET到了,但当GET搜索资源时出现了404错误。后证实同酷我一样是使用了错误的方法。一次不抱希望的尝试意外GET到了网页,但没有这么简单。在分析网页时发现网易云对于搜索内容采用了iframe框架,导致爬虫对其中的内容抓不到。后来想采用网络上selenium来获取框架内的内容的,自己分析框架后放弃了。网易云对框架的搜索结果信息采用了从js加载的方法。真的是四处碰壁呀,对框架爬虫不成就获取不到id,就生成不了外链,好可惜。还是不死心,开始寻找API。找到的第一个API只能拿到不受版权要求可以生成外链的歌曲id,人心不足蛇吞象,觉得不够用就返回去继续攻克爬虫网页难题。打算试一下嵌套进iframe查看理想效果,不想问题才开始。将网易云单曲播放页面作为iframe子框架插入自己的页面时发现网易云使用if(window.location!=top.location)top.location=window.location来防止页面被iframe嵌套。采用网络上的双层iframe也是无用,现在想想双层嵌套在理论上就不行,只要网易页面不是top就会一直跳转。后来采用sandbox沙盒来阻止网页内script运行。成功,但页面都没加载全,因为网易主要是靠js加载。这样就又不符合需求了,发现sandbox是可以添加参数的。不断添加参数,直至网页跳转,发现是 allow-top-navigation 属性。将其他属性加上后页面不再跳转且页面正常加载完毕,事情发展到这里似乎有点完美,于是美乎乎睡了一觉。还是太年轻了。网易云没有设置自动播放功能,需要手动点击按钮才可以播放,这对人来说无所谓,对机器是真的太不友好了。开始虎头虎脑的想从父页面获取iframe内元素,然后模拟点击。当时就是这么想着睡着的,可是由于涉及到跨域操作,浏览器会拦截。查找网上各种奇淫巧技,没有成功的(或许有,仅仅是大神们不兴说而已)。浏览器的安全机制哪里是那么容易打破的。突然,又发现快捷键p同样是播放,又转而寻找模拟按键的代码。个人觉得比较可靠的是模拟p按键的事件。但是没有成功,任务搁置。今天终于找到了API,也找到了解决办法,感谢诸位网友的信息提供。

虾米自带API,但是其资源好像没有其他几个多(可能是错觉吧)。且API并不是很好用,就放弃了。去实现其他需求吧。

放弃网页爬虫!有API用API!将百度,酷我,网易云的API找到,拿到要的信息。其中涉及到了json数据的读取,字符的转码,多次API的使用等等。一步步将需要的信息分析出来。除了酷我的图片信息需要额外的爬一次网页以外,其他均交由API实现,比较可靠。酷我今天崩了,登不进网页,爬不到数据了,还以为代码有新问题了呢。。

寻找接口的重任终于结束啦啦啦啦啦啦啦!接下来就是最有趣的功能编写了!

近期三日的网络爬虫和API的小结相关推荐

  1. python爬虫程序说明_Python即时网络爬虫:API说明

    API说明--下载gsExtractor内容提取器 1,接口名称 下载内容提取器 2,接口说明 如果您想编写一个网络爬虫程序,您会发现大部分时间耗费在调测网页内容提取规则上,不讲正则表达式的语法如何怪 ...

  2. python百度百科api-Python即时网络爬虫:API说明

    API说明--下载gsExtractor内容提取器 1,接口名称 下载内容提取器 2,接口说明 如果您想编写一个网络爬虫程序,您会发现大部分时间耗费在调测网页内容提取规则上,不讲正则表达式的语法如何怪 ...

  3. python网络爬虫_Python即时网络爬虫:API说明

    1,接口名称 下载内容提取器 2,接口说明 如果您想编写一个网络爬虫程序,您会发现大部分时间耗费在调测网页内容提取规则上,不讲正则表达式的语法如何怪异,即便使用XPath,您也得逐个编写和调试. 如果 ...

  4. python新闻聚合_基于Python的新闻聚合系统网络爬虫研究

    基于 Python 的新闻聚合系统网络爬虫研究 左卫刚 [摘 要] 摘 要 本研究旨在创建一个能够从不同页面布局中提取数据的开源爬 虫,其中包括网络爬虫. API .网络爬虫调度器以及 Socket ...

  5. 网络爬虫,淘宝API商品详情测试(抓取详情数据)

    网络爬虫是通过什么方式来寻找网络上的信息的呢 通俗来讲,网络蜘蛛是通过网页的链接地址来寻找网页的.从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻 ...

  6. 基于Thinkphp5+phpQuery 网络爬虫抓取数据接口,统一输出接口数据api

    TP5_Splider 一个基于Thinkphp5+phpQuery 网络爬虫抓取数据接口 统一输出接口数据api.适合正在学习Vue,AngularJs框架学习 开发demo,需要接口并保证接口不跨 ...

  7. Python零基础速成班-第12讲-Python获取网络数据Socket,API接口,网络爬虫Crawler(制作弹幕词云)

    Python零基础速成班-第12讲-Python获取网络数据Socket,API接口,网络爬虫Crawler(制作弹幕词云) 学习目标 获取网络数据Socket API接口 网络爬虫Crawler(制 ...

  8. python网络爬虫系列教程——python网络数据爬虫误区,让你的爬虫更像人类

    1 前言 近期,有些朋友问我一些关于如何应对反爬虫的问题.由于好多朋友都在问,因此决定写一篇此类的博客.把我知道的一些方法,分享给大家.博主属于小菜级别,玩爬虫也完全是处于兴趣爱好,如有不足之处,还望 ...

  9. Python3网络爬虫(十一):爬虫黑科技之让你的爬虫程序更像人类用户的行为(代理IP池等)

    转载请注明作者和出处:http://blog.csdn.net/c406495762 运行平台: Windows Python版本: Python3.x IDE: Sublime text3 前言 黑 ...

最新文章

  1. 十类最让前辈讨厌的新人
  2. php 社区,社区(phpmysql)一
  3. 1.关于Python,你可能不知道的
  4. C# 使用VS建立数据库并使用
  5. Microsoft Office/visio/Project 2013 with SP1 简体中文零售版
  6. HTML网页设计:十一、表单
  7. 锐捷Linux版的下载和使用(福大客户端)
  8. 论文参考文献格式写法
  9. TCR历史研究夏校申请详解
  10. java实现二维码扫码下载APP
  11. 计时器计算小时、分钟、秒数
  12. [HNUOJ1140] Daily Division(树状数组+二分)
  13. 每日一题-59(查询活跃业务)
  14. AE制作粒子飘雪效果
  15. nonce值是什么?(Number once)(Number used once)cnonce(client nonce)(一个只被使用一次的任意或非重复的随机数值)
  16. SRC小技巧:批量查询网站权重
  17. Qt基础与Qt on Android入门-安晓辉-专题视频课程
  18. Kafka Group coordinator xxx:9092 (id: xxx rack: null) is unavailable or invalid
  19. 为什么IT互联网行业工资这么高?
  20. 探讨一下如何防止撞库。

热门文章

  1. 美年旅游_套餐管理_新增套餐
  2. word 无法打开Office OpenXML 文件 文件名, 因为内容有错误
  3. 用ChatGPT创造的虚拟老婆,被真女友强制「安乐死」
  4. 用计算机中的知识秀恩爱,秀恩爱的说说7个字情话
  5. 用catia画钩子_如何用CATIA绘制杯子,来看看吧
  6. python改变照片格式及尺寸
  7. 01-步骤整理-华为海思Hikey970开发板的AOSP编译烧写
  8. 从《梦幻西游》看角色养成
  9. 早期递归神经网络初探
  10. spring 事务传播的七种行为