技术心得:快手的小视频爬取

简介: 技术心得:快手的小视频爬取

一.配置好fiddler和手机


 让手机能够通过fiddler代理访问网络


二.抓包


  打开快手APP,Fiddler会快速显示很多信息,这些都是手机传送或者接收到的信息。可以逐个包点开,以json形式查看是否是我们需要的内容,如下图所示:


  这时可以看到,有一个包里显示了很多信息,包括视频的标题,发布者,再往下拉,发现里面包含很多叫做“main_mv_url"的标签,复制其中一个标签后的url到浏览器,发现浏览器下载了一个mp4格式的视频,点开视频,就是我们需要的。为了让列表中只显示我们需要的包,让视图更清晰,可以用过滤器,只显示URL中含/rest/n/feed/的内容


  回到Fiddler,看之前那个包的头(Fiddler右上窗口),上面有个url,可以复制到浏览器会发现打开的不是和Fiddler右下角一样的json界面,而是显示服务器繁忙,因为这个url是不完整的。注意右上窗口最后一行有个“type=......”这其实是完整url的后半部分,要把它拼接到第一行POST url的后面,并且以&连接。把完整的url再复制到浏览器,得到和Fiddler右下窗口类似的内容(不是完全一样,因为视频内容会更新),ok


  再观察“type=...”这串字符,可以多抓几个包对比一下,发现count后面跟着的数字是不一样的,即每个json里所含视频个数不一样。平均每个json中含有20个视频的下载链接。page后面的数字就代表页数,在快手界面不断的往下滑,隔一小段时间会有另一个包,可以发现page后的数字是递增的。NStokensig和sig后跟的一串数字是没有规律可循的,要破解快手APP的代码才能知晓。所以无法掌握每个json的url变化规律,所以若是要抓取20个以上的视频,只能通过在快手app页面上往下滑动,抓包,copy完整的url到文本文件再用程序进行下载。


代码:


#!/usr/bin/env python


# -- coding: utf-8 --


#author tom


import pprint


import requests


import json


import time


import random


class Kuaishouspider:


#这个是抓包抓到的数据请求url,要和后面的type用&拼接起来


def //代码效果参考:http://www.lyjsj.net.cn/wz/art_23482.html

init(self):

self.url=''


self.headers={


'Content-Type': 'application/x-www-form-urlencoded',


'Host': 'api.ksapisrv.com',


'Accept-Language': 'zh-Hans-CN;q=1'


}


#抓包里面的数据


self.data={


'client_key':'3c2cd3f3',


'coldStart':'false',


'count':'20',


'country_code':'cn',


'id':'25',


//代码效果参考:http://www.lyjsj.net.cn/wx/art_23480.html

'language':'zh-Hans-CN;q=1',


'pv':'false',


'refreshTimes':'2',


'sig': '518db63518ffba8fca5c70724750dc95',


'source':'1',


'type':'7'


}


self.count=0


def kuaishou_request(self):


while True:


#用来计数的


self.count+=1


#返回的json数据,我们从里面解析出视频的uerl


res=requests.post(self.url,data=self.data,headers=self.headers)


list=res.json()【'feeds'】


#list里面装着每一个视频的详细信息,包括我们所需要的视频url


for info in list:


pprint.pprint(info)


print('描述%s'%info【'caption'】)


print('视频连接%s'%info【'main_mv_urls'】【0】【'url'】)


print('作者%s'%info【'user_name'】)


print('id%s'%info【'user_id'】)


//代码效果参考:http://www.lyjsj.net.cn/wx/art_23478.html

print('第%s次抓取完成'%self.count)

time.sleep(random.randint(500,700))


if name == 'main__':


ks=Kuaishouspider()


ks.kuaishou_request()


代码

相关文章
|
1月前
|
数据采集 JSON JavaScript
Python爬虫案例:抓取猫眼电影排行榜
python爬取猫眼电影排行榜数据分析,实战。(正则表达式,xpath,beautifulsoup)【2月更文挑战第11天】
152 2
Python爬虫案例:抓取猫眼电影排行榜
|
数据采集 小程序 Python
搞定短视频!批量下载快手视频(附源码)
相信大家都接触了短视频平台,比如某音、某手等平台,竟然大家都熟悉了,那么今天辰哥分享的技术是:在某手上搜索视频,并实现下载!
1095 0
|
3天前
|
JSON 数据格式 网络架构
技术心得记录:快手的小视频爬取
技术心得记录:快手的小视频爬取
|
7月前
|
机器学习/深度学习 算法 搜索推荐
抖音快手小视频推荐算法之--协同过滤算法剖析
抖音快手小视频推荐算法之--协同过滤算法剖析
|
11月前
|
算法 BI
产品分析——抖音
产品分析——抖音
207 0
|
数据采集 监控 安全
第九期|不是吧,我在社交媒体的照片也会被网络爬虫?
被批量盗取用户信息和原创内容,经分类梳理和初步加工后,被黑灰产转售给竞争对手或直接用于恶意营销。
135 0
第九期|不是吧,我在社交媒体的照片也会被网络爬虫?
|
存储 搜索推荐 算法
抖音SEO优化怎么做?一文搞透抖音短视频优化!
为什么要做抖音SEO?哪些企业适合做抖音SEO?
554 0
抖音SEO优化怎么做?一文搞透抖音短视频优化!
|
数据采集 Python
Python爬虫系列13-采集快手短视频官网数据
读书不是唯一出路,但学习一定是。 有些人忙碌的活着,有些人努力的拼搏,有些人随意挥霍青春,人生百态,各有不同。
Python爬虫系列13-采集快手短视频官网数据
|
人工智能 API Android开发
淘宝、拼多多、抖音主播颜值大比拼
淘宝、拼多多、抖音主播颜值大比拼
337 0
淘宝、拼多多、抖音主播颜值大比拼
|
移动开发 算法 JavaScript
淘宝直播里的智能互动是怎么做的?
跨端方案成为唯一选择,为了提高运营、设计和玩法开发人员的制作效率,我们也必须有配套的素材生产工具和玩法编辑工具,解决素材制作-效果调试和预览-素材上传-素材投放全链路的问题,同时我们也希望玩法能结合权益产生更大价值。
淘宝直播里的智能互动是怎么做的?