zoukankan      html  css  js  c++  java
  • python 下载文件 & 防盗链

    偶然下载一种类型的资源,发现好多翻页,右键另存什么的,不胜其烦。

    决定用python写几句代码搞定。核心代码如下:

    from urllib import urlretrieve
    
    from urllib import urlretrieve
    urlretrieve(url,save_to_path,show_download_progress)
        
    

    至于url,简单的用爬虫的思路得到的。非本文的重点,不再啰嗦。

    问题来了,不知道为什么,下载的所有文件都是42k!

    百思不得其解,应该是某种限制,脑袋不灵光,想了半天才想到,应该是防盗链。

    查了下,于是用wireshark模拟了一下,发现header参数太多,弄不好每个都要设(取决于人家网站的逻辑设计),于是不管三七二十一,先给射了个Reffer。

    不幸的成功了。好吧,不用再研究了,收工,特记录之。

    以上问题的解决方案:

    import urllib2
    req = urllib2.Request('http://www.example.com/')
    req.add_header('Referer', 'http://www.python.org/')
    resp = urllib2.urlopen(req)
    content = resp.read()
    

    接下来,只需要吧content写到文件里面去就好了,此处略。

    完整demo如下:

    import urllib2
    
    req = urllib2.Request('http://61.164.149.80/ftp1/0905/models_z/1014/3.rar')
    req.add_header('Referer','http://www.coolsc.net/3D-Details/2009/10/14/29468-0.htm')
    resp = urllib2.urlopen(req)
    content = resp.read()
    f = open(r'D:	est2.rar','wb')
    f.write(content)
    f.close()
    

      

  • 相关阅读:
    顺序前缀改为随机性前缀 反转时间戳 反转年月日
    后台组件的治理思路
    干货 | 高耦合场景下,Trip.com如何做支付设计与落地
    每天响应数亿次请求,腾讯云如何提供高可用API服务?
    系统管理及操作命令
    远程连接及系统管理
    linux系统部署安装过程
    day 1 硬件组成概念及介绍笔记
    day 4
    day 3
  • 原文地址:https://www.cnblogs.com/Tommy-Yu/p/4009586.html
Copyright © 2011-2022 走看看