这是一个历史性遗留问题,之前一直没解决。这两天在写aria2的前端,于是把这个历史遗留问题提到了日程最前。
问题如下:
wget和curl和aria2c,三个工具用同一cookie,同一referer去请求窘转的同一文件,结果只有aria2会得到提取码错误的页面。
猜想:
Agent问题,遂加上如下参数 -U 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; en-us) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27'
结果依旧。
于是
sudo port install netcat
nc -l -p 8080
讲请求的host改成localhost:8080之后,分别抓得请求如下:
GET /ftn_handler/1c9e94a8f3f4a153cbf26642f1ec5cfccc24ef3b793d41a1736006dc55189d149da1ed2389c819b5969c55ff725d63d96ac317eead18aea0d6f149407fbfaf7b/%5Bgfgf5zc%40kf%402dj%5DMaria+Holic.part01.rar?k=3e663461336477e7f779bc751564051c50545502020506024857500507490355560719580b550e1e56550700565d0156075707073342376802005307061e54730e007453570e6a7e04145d00132c585f0c051a115216430354484600416470&fr=00&&txf_fid=417058511c7baa1ee8bc39b9fcab721256dd4d47 HTTP/1.0 Referer: http://mail.qq.com/cgi-bin/ftnExs_download?k=3e663461336477e7f779bc751564051c50545502020506024857500507490355560719580b550e1e56550700565d0156075707073342376802005307061e54730e007453570e6a7e04145d00132c585f0c051a115216430354484600416470&t=exs_ftn_download&code=ef4a3d73 User-Agent: Wget/1.12 (darwin10.7.0) Accept: */* Host: localhost:8080 Connection: Keep-Alive Cookies: qm_ftn_key=56dd4*** [ misuzi Misuzis-Mac ~ ] nc -l -p 8080 GET /ftn_handler/1c9e94a8f3f4a153cbf26642f1ec5cfccc24ef3b793d41a1736006dc55189d149da1ed2389c819b5969c55ff725d63d96ac317eead18aea0d6f149407fbfaf7b/%5Bgfgf5zc%40kf%402dj%5DMaria+Holic.part01.rar?k=3e663461336477e7f779bc751564051c50545502020506024857500507490355560719580b550e1e56550700565d0156075707073342376802005307061e54730e007453570e6a7e04145d00132c585f0c051a115216430354484600416470&fr=00&&txf_fid=417058511c7baa1ee8bc39b9fcab721256dd4d47 HTTP/1.1 User-Agent: aria2/1.11.1 Accept: */*,application/metalink4+xml,application/metalink+xml Host: localhost:8080 Pragma: no-cache Cache-Control: no-cache Referer: http://mail.qq.com/cgi-bin/ftnExs_download?k=3e663461336477e7f779bc751564051c50545502020506024857500507490355560719580b550e1e56550700565d0156075707073342376802005307061e54730e007453570e6a7e04145d00132c585f0c051a115216430354484600416470&t=exs_ftn_download&code=ef4a3d73 Cookies:qm_ftn_key=56dd4***
嗯,我相信敏感的人一眼就会看出问题,没错,aria2的请求少了这么一个空格!
Cookies:[空格!]qm_ftn_key=******
你*的腾讯,你丫server端解析cookie的能力就这么差么,就差了这么一个空格,结果导致会parse不到
于是手工添加了一个空格,搞定。收工。
这文章是在给自己短期内最后一个项目铺底——Aria2Atom
项目目标:Python后端实现下载session管理,并通过web.py制作一个类似transmission-cli的前台
1:实现服务器的下载工具远程管理。
2:给自己的mac的下载也全部转移到aria2c上完成,目前已知的80%的下载工具,测试结果都是个棒槌,没有一个好用的。
目前已经有一个测试的demo写出来了,不过写的比较渣,通过pickle来持久和还原session,试用后虽然已经用在了生产环境上,不过感觉还是很差,于是推倒了重新用SqlAlchemy来管理持久化对象,预计周末出发前搞定雏形并跑在生产环境下。作为长期项目抽时间进行维护。
P.S.
SQLAlchemy的PickleType真是个好东西。
Comments (22)
はやい!....
話說現在kita的下載工具就是mldonkey、transmission什麼的
mldonkey太渣,驴子和普通bt资源已经直接丢离线了,pt用transmission,于是各种网盘,离线回挂资源需要一个比较稳定强力的下载工具...于是折腾了iget之类的,貌似对cookie的处理都有点问题,而且速度上也一般。于是,就有了把linux下的东西搬回来的想法,只是重新做个前端而已~
mldonkey普通下载缺少用户验证,添加cookie,referer之类的。
自己基本一添加任务就是几百个link,而且需要远程web或者console管理。
win下可以用idm,linux下一直用命令行的aria2c,当时就想写前端,不过没动力,现在系统稳定了,于是打算疼一疼~
内置单线现在...下离线还可以,其他东西就很难满速了。。。如果上光纤了估计就没有这么多麻烦了。。233~
偶尽量7*24保持满速,路由端做好qos,保证看视频不卡就okay,嗯。。算是大学时期留下的强迫症了
嗯,整理分类。。。还没上raid。。。上raid后再考虑分类整理问题了,现在就是用简单的记事本+Tree目录的方式来记录文件就好了。
介tx就一垃圾it工厂,之前写过一个中转站parsing脚本,还试图写一个上传客户端,结果发现丫居然对数据作自签名了。。。。
@卢松松:
呃,其实只是个错误记录而已。
@lovee:
哎朵,其实这个真的不是神马技术东西,只是想吐槽tx这个作的太缺德了。之前就这个问题想了很久很久,就是没想起来抓包看看...
其实即使抓包,不细心的话这么一个空格是很容易被忽略掉的。
@shekck:
之前花了3天时间写了一个aria2c的管理工具,于是这个其实只是个补充而已。生活文不太好写,自己写出来总觉得像流水账,而且最近跑动比较少,于是,嗯,至少写点技术文混更新...~其实偶好想写篇吐槽列车秩序的文。
@Mucid:
dt...仅此而已。
@星野苍真:
又被扣上了奇怪的帽子...~
哈哈,谁让TX这么jian呢~什么都要抄~又不注重质量控制,于是就这么悲剧了~~
Leave a comment