快手的小爬取
2019-09-26投稿区发说说145°c
A+ A-打开快手APP,Fiddler会快速显示很多信息,这些都是手机传送或者接收到的信息。可以逐个包点开,以json形式查看是否是我们需要的内容,如下图所示:

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

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


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