免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3830 | 回复: 4
打印 上一主题 下一主题

Python 突破防盗链下载FLASHGET资源 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-06-13 13:57 |只看该作者 |倒序浏览
今天,群里一位童鞋碰到的一个问题,本着互帮互助的无私精神,帮他研究了下,现总结如下:

Q: 采集网站资源,但网站采用的防盗链,不能直接访问下载页 如何解决?
A: 一般的防盗链采用的是识别访问者的Referer 来判断访问者是否直接通过站外链接下载的资源。所以,在下载时伪造个合法的Referer就能  达到欺骗的目的,Python代码实例:
1 url = 'http://www.qcfans.cn/soft/download.asp?softid=3317&downid=9&id=3321'
2 opener = urllib2.build_opener(urllib2.HTTPHandler)
3 opener.addheaders = [('User-agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3')]
4 opener.addheaders = [('Referer', ' http://www.qcfans.cn/soft/download.asp?softid=3317')]
5 urllib2.install_opener(opener)
6 response = urllib2.urlopen(url)
7 the_page = response.read()
8 print the_page

打印出的结果:
<script src="http://ufile.7pk.com/Flashget_union.php?fg_uid=17826"></script>
<script>function ConvertURL2FG(url,fUrl,uid){ try{ FlashgetDown(url,uid); }catch(e){ location.href = fUrl; }}
function Flashget_SetHref(obj){obj.href = obj.fg;}</script>
<script>ConvertURL2FG('Flashget://W0ZMQVNIR0VUXWh0dHA6Ly9sb3ZlLnFjZmFucy5jbi9kb3duL3BwdC/G+7O1t6K2r7v6ubnU7NPr0N7A7S+12rDL1cIgt6K2r7v6tcTXsMXkoaK199X70+vEpbrPLnBwdFtGTEFTSEdFVF0=&17826','http://www.qcfans.cn',17826)</script>

Ok,第二个问题出来了,瞧:

Q: 我不想使用FLASHGET进行下载,如何得到真实的资源地址呢?
A: 这里涉及到FlashGet专用地址与统一资源定位符转换的问题,具体的算法很简单(就文章发布前而言):
首先,我们提取flashget的地址
Flashget://W0ZMQVNIR0VUXWh0dHA6Ly9sb3ZlLnFjZmFucy5jbi9kb3duL3BwdC/G+7O1t6K2r7v6ubnU7NPr0N7A7S+12rDL1cIgt6K2r7v6tcTXsMXkoaK199X70+vEpbrPLnBwdFtGTEFTSEdFVF0=&17826

然后将其地址的协议前缀 Flashget:// 和等号后的 &17826 去掉。
将处理过的地址字符串进行Base64解码,看Python 实例:
1 print base64.decodestring("W0ZMQVNIR0VUXWh0dHA6Ly9sb3ZlLnFjZmFucy5jb\
2 i9kb3duL3BwdC/G+7O1t6K2r7v6ubnU7NPr0N7A7S+12rDL1cIgt6K2r7v6tcTXsMXko\
3 aK199X70+vEpbrPLnBwdFtGTEFTSEdFVF0="))

见print输出的结果如下:
[FLASHGET]http://love.qcfans.cn/down/ppt/汽车发动机构造与修理/第八章 发动机的装配、调整与磨合.ppt[FLASHGET]

ok,现在显而易见了吧,取 [FLASHGET] 标记内的地址 就是真实的资源地址!
关键代码在此,其余的代码就不浪费篇幅陈述了。

到此,玩弹弹堂去了。。。

论坛徽章:
0
2 [报告]
发表于 2010-06-13 14:29 |只看该作者
QQ 群果然是生产月经问题的地方……

论坛徽章:
0
3 [报告]
发表于 2010-06-13 16:38 |只看该作者
总结的不错

论坛徽章:
0
4 [报告]
发表于 2010-06-17 13:47 |只看该作者
学习到了。人民的力量果然是强大的。

论坛徽章:
0
5 [报告]
发表于 2010-06-17 13:54 |只看该作者
本帖最后由 luffy.deng 于 2010-06-17 13:55 编辑

研究来  研究去 连flashget都用上了  就是不肯去看看http协议。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP