分享好友 最新动态首页 最新动态分类 切换频道
2024年Python爬虫实战:利用scrapy,短短50行代码下载整站短视频
2024-12-27 04:56

参考官方文档,不再赘述。官方文档:https://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/install.html

2024年Python爬虫实战:利用scrapy,短短50行代码下载整站短视频

三、scrapy实战:50行代码爬取全站短视频

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

开发爬虫的一般步骤是

  • 确定要爬取的数据(item

  • 找到数据所在页面的url

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

  • 那么,我们一步一步来。

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

1 scrapy startproject DFVideo

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

scrapy genspider -t crawl DfVideoSpider eastday.com

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

目录下包括如图文件

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

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

import scrapy

class DfvideoItem(scrapy.Item):

video_url = scrapy.Field()#视频源url

video_title = scrapy.Field()#视频标题

video_local_path = scrapy.Field()#视频本地存储路径

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

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

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

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

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

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

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

在DfVideoSpider.py中编辑

import scrapy

from scrapy.loader import ItemLoader

from scrapy.loader.processors import MapCompose,Join

from DFVideo.items import DfvideoItem

from scrapy.linkextractors import LinkExtractor

from scrapy.spiders import CrawlSpider, Rule

import time

from os import path

import os

class DfvideospiderSpider(CrawlSpider):

name = ‘DfVideoSpider’

allowed_domains = [‘eastday.com’]

start_urls = [‘http://video.eastday.com/’]

rules = (

Rule(LinkExtractor(allow=r’video.eastday.com/a/d+.html’),

callback=‘parse_item’, follow=True),

)

def parse_item(self, response):

item = DfvideoItem()

try:

item[“video_url”] = response.xpath(‘//input[@id=“mp4Source”]/@value’).extract()[0]

item[“video_title”] = response.xpath(‘//meta[@name=“description”]/@content’).extract()[0]

#print(item)

item[“video_url”] = ‘http:’ + item[‘video_url’]

yield scrapy.Request(url=item[‘video_url’], meta=item, callback=self.parse_video)

except:

pass

def parse_video(self, response):

i = response.meta

file_name = Join()([i[‘video_title’], ‘.mp4’])

base_dir = path.join(path.curdir, ‘VideoDownload’)

video_local_path = path.join(base_dir, file_name.replace(‘?’, ‘’))

i[‘video_local_path’] = video_local_path

if not os.path.exists(base_dir):

os.mkdir(base_dir)

with open(video_local_path, “wb”) as f:

f.write(response.body)

yield i

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

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

最后

不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码,过几天我还会做个视频教程出来,有需要也可以领取~

给大家准备的学习资料包括但不限于

Python 环境、pycharm编辑器/永久激活/翻译插件

python 零基础视频教程

Python 界面开发实战教程

Python 爬虫实战教程

Python 数据分析实战教程

python 游戏开发实战教程

Python 电子书100本

Python 学习路线规划

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

最新文章
梦幻西游最强的宝宝没有之一,神马浮云在它面前都是垃圾
梦幻西游中召唤兽跟随号主南征北战,为自己的武神之战付出汗马功劳,也获得了丰功伟绩;今天咱们就说一说梦幻西游中最强悍而且已经是绝版的召唤兽,绝对是站在武神坛顶端的宝宝了,价值肯定超过最少两百万,神马浮云在它面前就是垃圾,咱们
谷歌adsense广告怎么赚钱?英文网站通过google广告盈利赚美金
想赚美金,又不想太累?那就来做英文内容网站去挂谷歌ADSENSE广告来赚钱吧。如何去做一个高级的英文内容网站,并把它当做一个资产去沉淀和积累,获取大流量后稳稳收益?依内容营销为指导,把网站上每一项内容都做成可以长期沉淀的资产,帮
蚂蚁庄园答案合集(蚂蚁庄园答案大全集结,轻松解锁庄园秘籍)
随着移动互联网的普及,各类手机应用层出不穷。其中,蚂蚁庄园作为一款集娱乐、知识于一体的游戏应用,深受广大用户的喜爱。蚂蚁庄园答案合集(《蚂蚁庄园答案大全集结,轻松解锁庄园秘籍》)正是为了满足用户在庄园游戏中遇到的各种问题而
骛与鹜的区别
描写黄山天都峰的诗句:1、孤峰突兀现青虚,喜若羁人望故都。神马已驰身尚远,却疑真有二文殊。——李弥逊《次韵公显宫教实见天都峰》2、奇险天都著,遥观亦有缘。大雄无与并,苍浑莫之先。倏忽阴晴异,逡巡起伏迁。云腾致雨气,水泻在山泉
最新款手机排行榜前十名(2023年畅销机型排名)
2023年最新款手机排行榜前十名在2023年的手机市场中,各种品牌的新机型层出不穷,竞争激烈,以下是基于销售数据和用户评价,我们列出的2023年最新款手机排行榜前十名:1. iPhone 14 Pro处理器:A16芯片屏幕:6.1英寸 Super Retina XDR 显示
首个机器人与AI共建平台落地亦庄,引爆智能制造新机遇
在科技界,机器人和人工智能的结合被视为未来工业的曙光,而现在,这一曙光似乎正照耀着北京亦庄。12月9日,北京京东数智工业科技有限公司(简称“京东工业”)与科大讯飞股份有限公司(简称“科大讯飞”)在亦庄签署了一项颇具里程碑意义
最官方的淘宝标题优化技巧,关键词拆分与重组
  前面小编给大家分享了一个官方标题优化的方法,今天给大家说说大家一直关心的分词、可拆分词和不可拆分词、标题空格等问题对于标题搜索有什么影响,这里开淘小编特意把最官方的信息收集过来给大家,希望能帮助到你们!  一、分词问题
远程查看对象微信聊天记录软件(如何偷偷监控老婆手机)
远程查看对象微信聊天记录软件(如何偷偷监控老婆手机)   打开微信,点击顶部的搜索框,输入关键词(如联系人名、内容等),直接查找相关聊天记录。翻阅历史聊天记录进入与某人的聊天页面,向上滑动查看历史记录,直到找到需要的信息。聊
python金融分析小知识(11)——python爬虫工具Postman神器的使用
Hello 大家好,我是一名新来的金融领域打工人,日常分享一些python知识,都是自己在学习生活中遇到的一些问题,分享给大家,希望对大家有一定的帮助! 相信很多小伙伴在使用python的使用会用来爬取一
联想全能王笔记本电脑测评(联想全能本有哪些)
今天给各位分享联想全能王笔记本电脑测评的知识,其中也会对联想全能本有哪些进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!在电脑的百度上输入扫描全能王,找到其官方网站以后点击进入。进入到该网站以后点击右
相关文章
推荐文章
发表评论
0评