这次我们要爬取的就是这些文章中的音频。 首先我们要知道如何下载当前页面的音频,还是F12,然后点击network,Media,点击播放按钮,弹出下面的文件
双击文件,弹出新的页面,此时的页面链接就是该音频的真实地址,可以通过访问该网址得到音频文件。 为了了解该文件是如何传输的,我们用burpsuite抓包看看
这个就是请求报文的头部,Go
返回的响应包体中包含大量的乱码,其实这个就是音频文件本身。我们的音频文件传输都是以这种方式传输的,看看Hex形式的样子
我们把这些字符保存下来会怎么样呢? 点击Headers,在下方点击右键,选择copy to file
保存为1.mp3,这时保存的路径就出现一个名为1.mp3的文件,点击运行,果然可以播放。 其实说了这么多就是为了告诉大家,音乐文件的存储不外乎这些字符,我们只需要把得到的报文中的字符保存成文件,就相当于保存了音乐本身。 知道了这个知识,我们就可以进行下一步操作,就是利用python模拟访问网页。
这个是获得音乐真实下载地址的代码,headers中的User-Agent和Cookie是必不可少的。因为微信中的网页对用户浏览器做了严格的限制,打开微信公众号的文章时,都会首先校验是否是微信浏览器打开,如果不是,会弹出请用微信浏览器打开的网页。而为什么我们现在能通过电脑浏览器访问微信公众号的页面呢?就是因为我们从微信中点开该链接时,系统自动帮我们加上了微信浏览器的UA。 利用requests库访问目标url,从返回的内容中找到'voice_encode_fileid="(.*?)"'字符串,然后返回给url。 上面这个操作有两个需要注意的: 1.前面的url和后面返回的url不是一个url,前面的url是我们最开始点击的链接,也就是公众号文章的链接。而后一个链接是从公众号文章中获取到的歌曲真实下载地址链接。 2.为什么找'voice_encode_fileid="(.*?)"'这个字符串呢? 因为我们要获取到歌曲真实的下载地址,如何在页面中找到这个地址呢? 首先检查元素,找到歌曲的编号1.获取歌曲的真实下载地址
我们检查网页源代码,搜索歌曲的编号
看到该歌曲的编号前面字符串就是'voice_encode_fileid=',然后中间的(.*?)这个是python的re模块贪婪匹配的符号,我们需要将这个代替我们想要获取的字符串。最后我返回了一个url和一个名字,主要是为了下载歌曲时命名所用。 通过上面的操作我们获得了歌曲的真实下载地址,接下来就是下载歌曲
下载歌曲的代码其实就相当简单明了,通过字符串拼接出真实下载地址,然后get,将获得的响应报文中的包体写入到文件中,文件的名字就是上一步获取到的名字。 这里主要涉及到的就是歌曲的保存问题,有了前面的知识,相信理解起来也就不是太难了。2.下载歌曲
上面的代码就是获取其他歌曲的链接,也是通过检查页面源代码,然后找到网页中其他歌曲的链接并保存下来。 这个函数中有一个url_queue,这个是python中的队列,主要是避免多线程操作时出现未知的内存错误。 获得了链接后,该函数会将url放入到url_queue队列中,等待get_url函数读取到其真实的歌曲下载地址。3.获取其他歌曲的链接
程序首先定义一个队列,用来存放歌曲链接,然后定义了一个url_list,存放初始的公众号文章链接,通过这些链接获取到更多的链接。然后定义一个循环,对url_list中的url进行爬取,获得更多的歌曲链接。最后定义了一个循环,获取到歌曲的真实下载链接和名字,然后通过get_music()函数将歌曲保存到本地。4.主函数,模块的组合
点击运行
可以看到程序先读取了url_list 然后保存相关的歌曲,并将歌曲命名为该编号的最后3个字符
最后获取到了39个歌曲,这个爬虫只是一个粗略的版本,并没有对很多情况进行处理,这个只能算一个爬取一轮的爬虫,并没写递归或循环进行更加深度或广度的爬取。需要爬取别的页面可以将页面的url放入到main函数的url_list中,未来有机会再研究更加深度的爬虫。 代码如下:
抱歉,只有登录并在本文发表评论才能阅读隐藏内容
学习下
怎么注册啊
来了
下载学习 一下,谢谢博主!
这个要怎么注册呀
学习下
学习下:han: 学习下:han: 学习下:han: 学习下
学习~~
可以的
学习下
学习
学习
学习了
学习了
学习学习
您好,请问如何才能看到您的这个简易爬虫代码?想学习学习
您好,最近几天比较忙,没有能及时的将您的评论通过,不好意思,敬请谅解
正需要呢,谢谢博主。
学习一下
希望能够学习一下
学习1下
学习一下看下代码
下载,学习下
。。。
谢谢分享,学习一下
谢谢分享!
学习。下
学习下,最近在用
学习下嘿嘿
学习下
下载学习 一下,谢谢博主!
正好需要, 借鉴一下, 博主杠杠滴
下载学习 一下,谢谢博主!
非常感谢
学习下!
谢谢,学习一下
怎么注册
学习学习
谢谢,学习一下
这个要好好学习下
为什么不能显示源代码呢博主?需要啊大神…求帮助
终于注册上了,手机不显示注册信息。。。赶快下载下来看看
迫切需要,谢谢博主
学习
学习
学习一下
学习了
怎么下载啊 想学习一下
学习
感谢博主
支持
学习学习
学习学习
学习一下 PGone 牛逼
学习学习
学习学习
非常不错,支持一下
回复了怎么下载呢
想学习下载公众号音频
学习
学习。
还需要评论啊。
文件还在不在了?
看不到文件?