第一步:分析目标网页
观察该网页为异步还是同步加载,异步加载需去XHR获取数据包
获取数据包,观察有用的信息数据所在的位置
1、打开手机,进入快手客户端。2、点击想要保存的视频作品,进入视频播放详情页。3、点击顶部的分享按钮打开分享界面,4、点击【下载到本地】即可将视频保存到手机。5、视频发表作者开启了不允许下载我的全部作品功能,分享界面。
观察是post还是get请求
若是post请求,观察多个数据包的payload是否一致
补充关于payload的知识点:
若请求方法是post,参数用payload传,对应请求写法如下:
非scrapy,在发送请求时,应写为:
1、打开快手,找出要保存的视频;2、长按住视频画面,在弹出的页面中点击【保存到相册】;3、等待下载完成,会出现【已下载,去相册查看】的显示;4、打开手机相册找到这条视频就可以了。如果作者设置了权限不允许保存的,视。
requests.post(url = url,headers = headers,json = data)
39;;headers = {&39;: &39;,&39;: &39;,&39;: &39;,&39;: &39;Referer&39;;,&39;: &39;}data = {&34;:&34;,快手私密视频怎么保存到手机,&34;:{&34;:&34;,&34;:&34;,&34;:&34;},&34;:&34;}# 传参要用jsonresponse = requests.post(url=url,headers = headers,json=data)
第二步:创建scrapy爬虫文件
创建爬虫项目scrapy startproject 爬虫项目名
cd 爬虫项目名文件夹
第一步:打开快手,选择你想要进行保存的视频。第二步:点击页面右侧列表的【分享】选项。第三步:点击页面左下角的【保存到相册】选项。第四步:依据视频时长至多等待半分钟左右,显示【已保存,到相册看看】时即为保存。
scrapy genspider 爬虫名 爬虫名.com
第三步:在爬虫项目名下的爬虫名.py内,建模
快手看到的视频的保存方法如下:1、打开快手。2、找到想要保存的视频,点击进入。3、“分享”图标,下载到本地。4、下载完成后,打开照片,就可以看到刚刚下载后保存的视频。快手是北京快手科技有限公司旗下的产品。快手的前身。
修改起始访问url和域名
class Mp4Spider(scrapy.Spider):name = &39;allowed_domains = [&39;] 39;;] # 起始url
重构起始请求
def start_requests(self):headers = {&34;: &34;, &34;: &34;, &34;: &34;, &34;: &34;Referer&34;;, &34;: &34;, }data = {&34;: &34;, &34;: {&34;: &34;,&34;: &34;,&34;: &34;}, &34;: &34;} for循环模拟翻页for page in range(2):39;POST& 修改请求方式为postheaders=headers, dont_filter=True,用body请求体接收data,json.dumps()将字典转为字符串,因为body的数据格式需要为字符串)
解析请求的数据
定义解析获取视频二进制数据的方法
def parse_video_url(self,response):item = {} 获取视频名称video_name = response.meta[&39;]39;video_name& 获取视频二进制数据video_byte = response.body 39;video_byte'] = video_byteyield item
第四步:将item数据传入管道,做数据保存
第一步、下载并打开“快手”APP后,播放想要保存的视频,然后点击屏幕上方的分享图标,在弹出的窗口中选择“复制链接”:第二步、退出快手,打开浏览器,在屏幕上方的搜索栏中输入刚才复制的链接(长按搜索栏,会出现粘贴选项。
设置单独存储视频的文件夹,避免视频直接储存在scrapy文件下,显得很乱
保存数据至excel模板,只需要修改第3,4,6,11,16,18行
1、打开快手APP,找到你想要保存的视频。2、点击右下角的“分享”,屏幕下方会显示出你可能要分享的对象,其他第三方软件以及保存、复制链接、收藏等操作选项。3、选择第三行第一个选项“保存到相册”,开启存储权限,等待视。
数据保存为视频格式
要想使管道顺利运行,需在settings.py文件夹将以下几行代码激活
第五步:在__init__.py文件夹运行
运行之前,需在settings.py将以下几行代码注销
之后在__init__.py里输入代码如下
没有运行日志的run界面