QQ登录

只需一步,快速开始

登录 | 立即注册 | 找回密码

主题

帖子

荣誉

资深鱼友Ⅱ

Rank: 9

积分
2309
查看: 497|回复: 7

优酷视频爬虫求助

[复制链接]
最佳答案
15 
累计签到:235 天
连续签到:6 天
32269100 发表于 2017-11-25 15:45:39 4977 | 显示全部楼层 |阅读模式
500鱼币
本帖最后由 32269100 于 2017-11-30 17:47 编辑

我写了一个爬虫爬优酷视频的下载视频api,遇到一个问题:
我尝试破解sign参数的时候,在js文件里找到了对应的代码,然后打断点刷新的时候,浏览器就必然处于卡死状态,
因此我无法从调试当中观察sign具有如何生成,只能从js源码里面猜,
从图片中可以看到u是sign的生成源码:
u = s(i.token + "&" + l + "&" + o + "&" + n.data)
加密居然用什么加密我也看不到,只能猜是MD5,因为加密后的长度和相似性跟MD5的很相似
我的具体源码已贴出来,求大家帮忙,帮我找出解决方案

更新:
目前代解决问题只剩下ckey这个参数的生成代码找不到在哪里,其他问题都已经解决,
即是现在求指导如何找到ckey的js生成代码在哪里!悬赏升至500鱼币


  1. import re
  2. import time
  3. import random
  4. import hashlib
  5. import requests

  6. ckey = 'DIl58SLFxFNndSV1GFNnMQVYkx1PP5tKe1siZu/86PR1u/Wh1Ptd+WOZsHHWxysSfAOhNJpdVWsdVJNsfJ8Sxd8WKVvNfAS8aS8fAOzYARzPyPc3JvtnPHjTdKfESTdnuTW6ZPvk2pNDh4uFzotgdMEFkzQ5wZVXl2Pf1/Y6hLK0OnCNxBj3+nb0v72gZ6b0td+WOZsHHWxysSo/0y9D2K42SaB8Y/+aD2K42SaB8Y/+ahU+WOZsHcrxysooUeND'
  7. data = '{"steal_params":"{\"ccode\":\"0502\",\"client_ip\":\"192.168.1.1\",\"utid\":\"CbufEiN+xnsCAbcCY/iY/VIb\",\"client_ts\":%s,\"ckey\":\"%s\"}","biz_params":"{\"vid\":\"%s\"}","ad_params":"{\"site\":1,\"wintype\":\"interior\",\"p\":1,\"fu\":0,\"vs\":\"1.0\",\"rst\":\"mp4\",\"dq\":\"flv\",\"os\":\"win\",\"osv\":\"\",\"d\":\"0\",\"bt\":\"pc\",\"aw\":\"w\",\"needbf\":1}"}'

  8. r = requests.get('http://v.youku.com/v_show/id_XMjkzNzA2OTI0MA==.html')
  9. vid = re.search('vid=(.+?)" target="_blank">',r.text).group(1)

  10. ts = str(int(time.time()*1000))
  11. token = ts+":"+str(random.random())
  12. sign = token+"&"+ts+"&"+'23536927'+"&"+data % (ts,ckey,vid)
  13. sign = hashlib.md5(sign.encode('utf-8')).hexdigest()

  14. param = {
  15.     'jsv':'2.4.10',
  16.     'appKey':'23536927',
  17.     't':ts,
  18.     'sign':sign,
  19.     'api':'mtop.youku.play.ups.appinfo.get',
  20.     'v':'1.1',
  21.     'timeout':'20000',
  22.     'YKPid':'20160317PLF000211',
  23.     'YKLoginRequest':'true',
  24.     'type':'jsonp',
  25.     'dataType':'jsonp',
  26.     'data':data % (ts[:-4],ckey,vid)}
  27. a = requests.get("http://acs.youku.com/h5/mtop.youku.play.ups.appinfo.get/1.1/",params = param)
复制代码

卡死的状态

卡死的状态

我就是在这个地方打断点,然后刷新,就卡死了

我就是在这个地方打断点,然后刷新,就卡死了
楼层
跳转到指定楼层
最佳答案
118 
累计签到:817 天
连续签到:25 天
hldh214 发表于 2017-11-26 11:41:18 | 显示全部楼层
https://github.com/soimort/you-get

最佳答案
141 
累计签到:279 天
连续签到:37 天
ooxx7788 发表于 2017-11-26 13:45:52 | 显示全部楼层

天线宝宝就是调皮,直接丢一个库出来
最佳答案
118 
累计签到:817 天
连续签到:25 天
hldh214 发表于 2017-11-26 14:42:15 | 显示全部楼层
ooxx7788 发表于 2017-11-26 13:45
天线宝宝就是调皮,直接丢一个库出来

写 Python 不用别人的轮子跟咸鱼有什么区别
喜欢造轮子写 js 去
最佳答案
15 
累计签到:235 天
连续签到:6 天
32269100  楼主| 发表于 2017-11-26 18:08:40 | 显示全部楼层

这也算是一个曲线解决的方案,可惜不行
这是原地址:http://v.youku.com/v_show/id_XMjkzNzA2OTI0MA==.html
失败.png
最佳答案
118 
累计签到:817 天
连续签到:25 天
hldh214 发表于 2017-11-26 22:44:55 | 显示全部楼层
32269100 发表于 2017-11-26 18:08
这也算是一个曲线解决的方案,可惜不行
这是原地址:http://v.youku.com/v_show/id_XMjkzNzA2OTI0MA==.h ...

用 dev 分支的代码
https://github.com/soimort/you-get/issues/2506
最佳答案
0 
累计签到:54 天
连续签到:1 天
yangjiadong 发表于 2017-11-28 10:20:19 | 显示全部楼层
最佳答案
232 
累计签到:249 天
连续签到:18 天
SixPy 发表于 2017-11-29 18:03:29 | 显示全部楼层
hldh214 发表于 2017-11-26 22:44
用 dev 分支的代码

404

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐 上一条 /2 下一条

    移动客户端下载(未启用)
    微信公众号

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备11014136号

Copyright 2018 鱼C论坛 版权所有 All Rights Reserved.

Powered by Discuz! X3.1 Copyright
© 2001-2018 Comsenz Inc.    All Rights Reserved.

小黑屋|手机版|Archiver|鱼C工作室 ( 粤公网安备 44051102000370号 | 粤ICP备11014136号

GMT+8, 2017-12-12 12:36

快速回复 返回顶部 返回列表