jidesheng6 发表于 2019-11-20 18:32

XX虾抓包去水印教程

这个教程是我之前看了论坛一位分析ios抖音无水印教程试着按照他的思路来做的,所以还是要先谢谢大佬的思路,不然我也写不出来
帖子链接:https://www.52pojie.cn/thread-1056173-1-1.html


我觉得大家如果点进来了大多数都是会配置手机端抓包和使用的,废话我就不多说了。


首先打开手机上的皮皮虾APP 随便找一个视频

然后选择复制链接

这时候我们放到浏览器打开 我这个复制的短链是https://h5.pipix.com/s/Ceo5vU/
在浏览器打开的同时去看电脑上FD的请求:我红色箭头标出的地方可以看出在浏览器打开以后跳转的是一个长地址,同时我们找到这个链接发现response是一个302也就是重定向
在重定向的headers里面都是有一个location的用来指示他要跳转的地址是哪里

接着我们再去找一些有关json结构的返回信息,同样在这个请求里面我们发现在json信息处会找到有关视频的介绍 描述 一些水印图片地址 【皮皮虾好像也是和抖音一个公司的吧 他们家套路基本就是这样】

这个地址https://h5.pipix.com/bds/webapi/item/detail/?item_id=6740623460659108107&source=share 后面携带的参数可以看到是一个视频id,而这个id可以在重定向的url里面用正则或者其他方法匹配出来,携带上去发送请求就可以得到json信息了,后面的source可以不携带。
由于里面json信息结构很简单就不做阐述,之前大佬那个抖音如果获取了视频地址没有带上手机端的UA视频链接会播放不了,所以这里建议大家都携带一个手机UA去访问/下载

最后贴一下代码吧,方便大家直观分析一下,代码写的垃圾,还请不要嫌弃


#coding:utf-8
import requests,os,json,re,sys
class PipiXiaMarkDelectMain:
    def __init__(self):
      self.Match_ShareLink_Rule = "h5.pipix.com"
      self.Match_ShareId_Rule = r"item/+"
      self.Headers = {"User-Agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 12_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 Mobile/15E148 Safari/604.1"}
      self.DetailPipiApi = "https://h5.pipix.com/bds/webapi/item/detail"
      self.VideoPath = "PiPiXiaVideoDelectMarkFloder"
      IsVideoPath_In = os.path.exists(self.VideoPath)
      if IsVideoPath_In == False:
            os.mkdir(self.VideoPath)
    def GetPipiXiaRedirectsLink(self,CopyLink):
      LinkStr = CopyLink
      IsPiHost = re.search(self.Match_ShareLink_Rule,LinkStr)
      Pi_Session = requests.session()
      if IsPiHost != None:
            Redirect_Pi_Url = requests.get(LinkStr,headers=self.Headers,allow_redirects=False).headers["Location"]
            ShareId = re.findall(self.Match_ShareId_Rule,Redirect_Pi_Url).replace("item/","")
            GetJsonParams = {"item_id":ShareId}
            ResponeUnicode = Pi_Session.get(self.DetailPipiApi,params=GetJsonParams,headers=self.Headers).text
            ResponeDict = json.loads(ResponeUnicode)
            VideoWithOutMark_Link = ResponeDict["data"]["item"]["video"]["video_fallback"]["url_list"]["url"]
            VideoDescriPtion = ResponeDict["data"]["item"]["comments"]["item"]["content"]
            if VideoDescriPtion == "":
                VideoDescriPtion = ShareId
            VideoInfoList =
            return VideoInfoList
      else:
            print("请输入合法链接")
            sys.exit(0)
    def DownPiPiXiaVideo(self):
      LinkStr = input("请输入皮皮虾链接:")
      VideoInfo = self.GetPipiXiaRedirectsLink(LinkStr)
      VideoName = VideoInfo
      VideoLinkUrl = VideoInfo
      VideoByteStream = requests.get(VideoLinkUrl,headers=self.Headers).content
      VideoFileName = self.VideoPath + "\\" + VideoName + ".mp4"
      with open(VideoFileName,"wb") as VideoFile:
            VideoFile.write(VideoByteStream)
      print("下载完成")
while 1:   
    X = PipiXiaMarkDelectMain()
    X.DownPiPiXiaVideo()

jidesheng6 发表于 2019-11-21 17:20

seven_OTM 发表于 2019-11-21 17:12
找到了, 话说楼主你是怎么找到这个视频链接的 这么深入
刚开始我一直在 video_download下面找,完全找 ...

你找一个有标题的视频然后在json里面一直找找到他标题那儿,反正你看到有中文字出现也就差不多了,还有就是url字样的字段要注意点 挨个去看看

seven_OTM 发表于 2019-11-21 17:12

jidesheng6 发表于 2019-11-21 12:43
链接打开 就是视频 你用requests去请求返回的是字节流 需要自己保存为mp4格式

找到了, 话说楼主你是怎么找到这个视频链接的 这么深入
刚开始我一直在 video_download下面找,完全找不到
看你代码写的是在 video_fallback里面 怎么找到它的

ds3700 发表于 2019-11-20 18:41

厉害 学习了
!!!

Tiamo-vip 发表于 2019-11-20 18:49

学到了!!!

fudashuai 发表于 2019-11-20 18:52

为楼主这样的高手点个赞!

woichm1314 发表于 2019-11-20 19:18

厉害了!!!

zhuyifei 发表于 2019-11-20 19:20

感谢,正在找就发现了。

87720108 发表于 2019-11-20 19:21

这么厉害

chuan8905 发表于 2019-11-20 19:34

感谢分享,学习了

bei133 发表于 2019-11-20 19:39

感谢楼主

zhgang908 发表于 2019-11-20 19:46

学习了。。
页: [1] 2 3 4 5 6
查看完整版本: XX虾抓包去水印教程