抓取网页视频工具(如何拿到优酷来讲的播放地址?|大神)

优采云 发布时间: 2021-09-18 20:04

  抓取网页视频工具(如何拿到优酷来讲的播放地址?|大神)

  莫特·姚:

  前言(废话):

  前段时间,由于公司的需要。因此,我们应该研究如何获得视频屏幕的播放地址。一般来说,网站很容易获得普通的视频播放地址。但对于优酷来说,腾讯等大型视频资源站很难获得视频资源。普通网站您可以通过网页直接抓取视频屏幕的播放地址。但是这些大的不起作用。这些网站由防盗链制成。以优酷为例。首先,他使用自己的SWF播放器,然后服务器将异步地向页面播放器加载一部分参数。播放器将在内部分析这些参数,然后获得视频的播放地址。这个解析过程很复杂

  起初,我用Fiddler 4抓包,但我能捕捉到很多有用的信息。起初,我想使用反向JS,但后来我发现它似乎与JS没有多大关系。然后我使用jsop捕捉关键代码。我发现他的视频信息是异步加载的,这表明jsoup无法捕获它。后来,经过仔细观察,我发现他的所有请求都是由SWF玩家发出的。在反编译之后,我别无选择,只能捕获他的SWF:(如果它只是一个简单的网页应用程序,您可以使用它的SWF,然后获取网页上name=“flashvars”部分的值,然后将该值发送给SWF播放。)

  

  这是最主要的

  可能知道优酷的加密方法是

  /player/getFlvPath+“/sid/”+$sid+““+No+”/st/“+thisVideoType+”/fileid/”+id

  可能在这种格式中,sid是securityid,然后添加no(number),然后下面的fileid也是加密的,而不是简单的ID。通常,会有一个令牌、K和EP参数,它们是重要的参数。最后,以这个地址为例,您只需要获得一个JSON字符串就可以获得播放地址

  [{"fileid":"0300080100579F87DDDF300157E54E465E9572-D357-57B7-15CA-646DEC5748A9.mp4","server":"http://117.41.231.17/youku/696AF5871C487D59853F424D/0300080100579F87DDDF300157E54E465E9572-D357-57B7-15CA-646DEC5748A9.mp4"}]

  与上面的一样,虽然服务器可以获取视频的地址,但/Youku/后面的随机代码是一种*敏*感*词*加密。换句话说,它每隔几个小时就会改变一次,也就是说,不可能一次得到一个永久地址

  优酷的视频下载都在客户端,也就是说,如果网络端想获取地址,普通的方法是行不通的。后来,我在客户机上进行了数据包捕获,然后我惊讶地发现TMD根本无法捕获任何有用的信息。我别无选择,只能感叹客户太愚蠢了。每次单击下载新视频时,我都会查看数据包捕获信息。它是空的,好像什么都没发生过。如果你不这样做,你只能走反编译之路。。(免费版本的反编译器只能查看,不能复制,更不用说调试了..操…)

  我们谈了这么多,现在说到点子上了。你得到的是一个强大的工具捕捉视频。其原理是,上述SWF反编译并捕获加密方法,然后解析网页请求,然后从视频站服务器骗取地址

  首先,该语言基于python。首先(至少)去官方下载3.0因为这个版本有pip3.安装后准备环境

  这里我不多说了:

  然后打开CMD命令输入

  pip3 install --upgrade you-get

  获得成功后获得的基本用法。上面的链接是

  接下来是关键

  如果您只想获取地址,可以在其前面添加一个命令

  --json

  you-get --json youwannaURL

  你可以找到地址

  通过PIP3安装的东西通常放在Python文件夹/lib/site包中/

  Extractor.py是主层之后的功能层。你可以进去看看。有很多方法,例如

  

  如果您得到的URL没有参数,您将执行下载的第一个If的else语句直接下载视频。如果有--JSON参数,则执行此If

  下载功能位于common.py中

  

  您可以将段落添加到输出中。或者使用return阻止下载

  返回到输出JSON_uuoutput.py

  

  你可以对我这样做,选择你需要的字段,然后以文件的形式输出它。每个人都很高兴,并得到了地址

  您可以更改代码以获得所需的更多函数~

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线