美文网首页python社区虫虫python
python利用scrapy短短50行代码下载整站短视频

python利用scrapy短短50行代码下载整站短视频

作者: 9ba4bd5525b9 | 来源:发表于2019-04-12 14:52 被阅读104次

    python的优雅之处在于能够让开发者专注于业务逻辑,花更少的时间在枯燥的代码编写调试上。scrapy无疑完美诠释了这一精神。

    开发爬虫的一般步骤是:

    1、确定要爬取的数据(item)

    2、找到数据所在页面的url

    3、找到页面间的链接关系,确定如何跟踪(follow)页面

    那么,我们一步一步来。

    既然是使用scrapy框架,我们先创建项目:

    scrapy startproject DFVideo

     紧接着,我们创建一个爬虫:

    scrapy genspider -t crawl DfVideoSpider eastday.com

    这是我们发现在当前目录下已经自动生成了一个目录:DFVideo

    目录下包括如图文件:

    spiders文件夹下,自动生成了名为DfVideoSpider.py的文件。

    爬虫项目创建之后,我们来确定需要爬取的数据。在items.py中编辑:

    接下来,我们需要确定视频源的url,这是很关键的一步。

    现在许多的视频播放页面是把视频链接隐藏起来的,这就使得大家无法通过右键另存为,防止了视频别随意下载。

    但是只要视频在页面上播放了,那么必然是要和视频源产生数据交互的,所以只要稍微抓下包就能够发现玄机。

    这里我们使用fiddler抓包分析。

    发现其视频播放页的链接类似于:video.eastday.com/a/180926221513827264568.html?index3lbt

    视频源的数据链接类似于:mvpc.eastday.com/vyule/20180415/20180415213714776507147_1_06400360.mp4

    有了这两个链接,工作就完成了大半:

    在DfVideoSpider.py中编辑

    至此,一个简单但强大的爬虫便完成了。

    如果你希望将视频的附加数据保存在数据库,可以在pipeline.py中进行相应的操作,比如存入mongodb中:

     当然,你需要在setting.py中将pipelines打开:

    执行结果展示

    视频文件:

    相关文章

      网友评论

        本文标题:python利用scrapy短短50行代码下载整站短视频

        本文链接:https://www.haomeiwen.com/subject/moecwqtx.html