分享好友 最新动态首页 最新动态分类 切换频道
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 学习路线规划

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

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

最新文章
美团店家地图位置设置
2024年01月14日吴经理100地图标注 , 地图定位 , 导航地图标记网络技术服务;信息技术咨询服务;技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广;日用百货销售;化妆品零售;互联网销售(除销售需要许可的商品);化妆品批发;服
江门智能锁全国统一售后服务热线/总部人工客服号码 - 行业 - 百科知识-蓝心网
江门智能锁售后服务电话-400各市区网点电话:400-658-8618江门智能锁售后服务电话-400各市区网点电话尊敬的客户您好!这里是江门智能锁售后服务电话-400各市区网点电话,如果您在使用过程中有什么问题,请拨打全国24小时服务热线电话。人工
手机网站链接微信,便捷互联的新时代营销策略解析,微信赋能手机网站,新时代营销策略的便捷互联之道
手机网站链接微信,开创便捷互联新时代营销新策略。通过整合线上线下资源,实现无缝对接,提升用户体验,拓宽营销渠道,助力企业实现高效推广。本文深入解析此策略,探讨其优势及实施方法。手机网站接入微信的显著优势手机网站接入微信的营
简单操作让你的网站不受恶意流量恶意爬虫威胁!Cloudflare防火墙部署指南_cloudflare部署
目前国际有不少网站都挂了Cloudflare服务,Cloudflare主要提供的安全服务是帮助网站阻止来自网络的黑客攻击、垃圾邮件等,并提升网页的浏览速度等。笔者近日在Cloudflare为自己的网站部署好了防火墙(WAF)、抗DDo
MTK 驱动(79)---如何调整CPU corenum, freq, policy
cpufreq控制结点位于 /sys/devices/system/cpu/cpu0/cpufreq/C:Usersmtk71247adb shellroot@NOBLEX:/ # cd sys/devices/system/cpu/cpu0/cpufreqcd sys/devices/system/cpu/cpu0/cpufreqroot@NOBLEX:/sys/devices/system/cpu/cpu0/
离谱!工资到手3K,这样干私活却能3W!
在数字时代,网络行为生成的数据量巨大,对企业而言,这些数据蕴含着巨大的商业潜力,数据规模越大,其潜在价值也越高。Python爬虫技术以其高效和强大的数据采集能力,成为了商业数据分析中不可或缺的工具。近年来,随着市场需求的激增,爬
餐饮最新ai文案模板范文
1【文案模板范文】探索美食新境界,智能定制您的味蕾宴!本餐厅借助先进的人工智能技术,精准捕捉您的口味偏好,打造个性化菜单。在这里,每一道佳肴都是为您精心烹饪的艺术品每一口都是对美食的极致体验。尽享定制美味,开启您的专属餐饮
苹果4S屏幕上的悬浮按钮怎样设置的?
对于苹果手机用户来说,小圆点( Assistive Touch 悬浮按钮)是提升操作便捷性的实用工具。那么,如何在屏幕上调出并设置这个圆点呢?首先,打开你的 iPhone 8 或任何苹果手机,找到并点击主屏幕上的【设置】图标,进入设置菜单。然后,向
日产10部剧,秒杀电影票房,微短剧还能野蛮生长多久?
来源:雪球App,作者: 中时财经,(https://xueqiu.com/1407616759/316815999)中时财经原创出品作者:沈 阳编辑:李 捷制图:乔寒云说起“投入少,回报高”,微短剧行业必须拥有姓名。发布的《短剧风起,把握蓝海》中提到,微短剧的制作
网页禁止复制粘贴怎么解决
对于网页禁止复制粘贴的问题,解决方案主要包括使用浏览器扩展、开发者工具、专用软件、以及更改浏览器设置等方法。浏览器扩展功能强大,能够帮助用户绕过网页上的限制,让复制粘贴变得简单。例如,一些扩展可以直接修改或禁用网页上的Java
相关文章
推荐文章
发表评论
0评