爬虫:采集原《不要音乐》网站MV下载链接

文 / [秦未](https://www.jianshu.com/u/6b91cce262ba)

写于:2017.01.13

------

**已失效**

一直想抓点数据,无奈自己HTML + CSS + 很多库都还没学 。 

不过这都不算啥  不是还有谷歌嘛!不会的东西搜索。

先看最终结果:


步骤: 

1.百度搜索 “不要音乐”,进入不要音乐首页:http://www.buyao.tv/index.php(这个网站界面简单,我也挺喜欢这个网站的)

2.点击进入一个MV,查看网址规律,如图所示,可以很清楚的看出该页面网址和该网站首页的区别。保存网址。


3.右键查看源代码,如图所示,找到该MV标题,哇,良心站长,下载地址都有!


4.准备Pycharm(http://www.jetbrains.com/pycharm/download/)开发工具,并下载3个库: requests,  lxml, bs4,下载方法为: 切换到控制台 管理员权限  输入: pip install 名称    回车即可。

Requests 是urllib的升级版本打包了全部功能并简化了使用方法,自带。

beautifulsoup是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式。

LXML是一个HTML解析包 用于辅助beautifulsoup解析网页。

 在Pycharm建立一个项目,建立一个Python文件,先导入库:


5.把地址保存在变量中,并写出浏览器请求头,一般正常情况下会需要。

6.打开网址,requests.get()方法就是用来打开网站的。用法:requests.get(all_url, headers=headers)

7.要获取网页的HTML文件并且解析:


8.从得到的HTML文件内寻找到第一个h3标签内容(这个网页比较简单,所以才能这么轻易找到),这里用到了find()方法 然后以text方式赋值到title中,此时title的内容就是“不要音乐MV | 《你不知道的事》-西北大学王钰萱(翻唱)”,请自行查看, print()可输出。


9.同样方法,获取到下载内容:这里用了缩写,find()先找到video标签内容,再从中找到source标签(这里可以再缩写,一步到位,我为了便于自己理解,就没有优化了),然后用split再分离第一个“符号,得到下标索引为1的字符串。将整个数据进行类型转换(我试过用.text ,结果什么都得不到)。


10.在进行抓取过程中,我发现并不是所有的资源都是 MP4的,然后经过分析,发觉标题和内容存在联系。如图:


11.将得到的文本存入一个TXT文件内,我原本是想下载的,但是我没有学多线程和异常处理,搜索的代码也不太理解,以后有机会会完善的。新增:函数 文本操作 while循环 if判断 变量i 网站请求时判断返回是否ok 主方法判断 等

2017.01.13优化修改:

Pycharm显示不了太多行 

END

你可能感兴趣的:(爬虫:采集原《不要音乐》网站MV下载链接)