当前位置:天才代写 > tutorial > Python教程 > 我是奈何完成一个音悦台下载措施的?

我是奈何完成一个音悦台下载措施的?

2017-11-02 08:00 星期四 所属: Python教程 浏览:581

本文是pythontab技能群① 网友 “贵阳-Win 7” (微博)投递的文章

一、序

    前段时间发明一个可以下载音悦台视频的措施,应该是E语言写的,本着想逆向一下,然后用python从头写一个,怎样汇编根基忘完了,才搞了一会就搞不下去了。

    就这么放弃么?必定不是,我又想了一个思路,既然它要理会一个网址,那么我就试试抓包阐明,所以就有了这篇文章。

我是怎样完成一个音悦台下载法子的?

二、上wireshark

    wireshark长短常风行的网络封包阐明软件,成果十分强大。可以截取各类网络封包,显示网络封包的具体信息。

首先我打开wireshark,配置抓包法则,抓HTTP包,内容应该会包括yinyuetai这样的字符串。

法则就酿成了:

http contains yinyuetai

Wireshark 开始事情后,我启动了这个音悦台理会软件,找到一个视频播放地点

http://v.yinyuetai.com/video/40

然后点击单页理会,wireshark顿时就捕捉到了数据,我们进一步阐明

 我是怎样完成一个音悦台下载法子的?

在捕捉的数据中,我发明白一个GET请求,点击右键,然后Follow TCP stream

 我是怎样完成一个音悦台下载法子的?

到今朝为止,我们得到的信息是,这个措施发送了一个GET请求,请求的路径是

/insite/get-video-info?flex=true&videoId=40

请求的主机是

www.yinyuetai.com

请求的数据中,videoId后头的40是我们视频播放地点的最后一个值。

我在欣赏器中实验会见这个完整的URL,它给我返回了一个文件,我实验用notepad++之类的软件调查了,发明个中有许多信息。

那么,我该怎么继承呢?

三、上python

这个视频理会措施,在我点击理会后,呈现了下面雷同的字样,个中包括了下载链接

http://flv.yinyuetai.com/uploads/vid…

那么,在上面返回的这个文件中有没有雷同的字符串呢?我通过ctrl+F举办了一下查找,公然有。

我是怎样完成一个音悦台下载法子的?

下面是我用python举办测试时候的截图。

我是怎样完成一个音悦台下载法子的? 

我们可以在返回的html代码中找到对应的字样,假如我们再能利用正则表达式匹配一下,那就完美了。

四、上正则

通过多次测试,发明下载地点的纪律如下:

http://[一些字母].yinyuetai.com/uploads/videos/common/[一些内容]&br[一些内容]

最终正则表达式为

re.findall("http://\w*?\.yinyuetai\.com/uploads/videos/common/.*?(?=&br)",html)

我这里表明一下,

1.首先查找http://

2.然后利用懒惰模式匹配字母

3.然后匹配对应的.yinyuetai.com/uploads/videos/common/

4.然后利用懒惰模式匹配一些内容

5.最后捕捉&br

五、多次调试

    写完一个措施是何等令我们兴奋,除了措施凭据我们的要求事情,我们在个中更是收获良多,是不是?

    但,一切尚未竣事。

是的,完全没有,要写好一个措施哪有这么简朴?

会不会有异常?会不会timeout,音悦台会不会判定UserAgent?

如何利用多线程下载多个视频?

会不会有假意伪劣视频假充?(我肿么会汇报你个中有一个0.6+MB的假意伪劣视频)

但,那已经是你需要思量的问题了。

六、新的挑战

本日在互联网闲逛的时候发明一个好对象,叫做youtube-dl(不知道的本身google)

它可以下载youtube的视频,并且是python写的,可是我下载来看,却加密了,你能通过抓包再写一个么?

Tip 1:

https://www.youtube.com/get_video_info?&video_id=RBumgq5yVrA&el=detailpage&ps=default&eurl=&gl=US&hl=en

Tip 2:

众所周知,在海内是上不了youtube的,假如上了VPN,我们还能抓到包么?其它的http署理呢?(假如不能,上面这个地点我是如何得到的呢?)

(注:我未继承深入测试,不要受我思想的约束)

七、总结

上帝关上了一扇门,却打开了一扇窗。

在新的年月,需要新的技能,更需要新的思路。

 

    关键字:

天才代写-代写联系方式