返回顶部

收藏

批量下载文件

更多
#!/usr/bin/env python
# -*- coding:utf-8 -*-

from gevent import monkey
monkey.patch_all()
from gevent.pool import Pool
import requests
import sys
import os

def download(url):
    chrome = 'Mozilla/5.0 (X11; Linux i86_64) AppleWebKit/537.36 ' + \
        '(KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36'
    headers = {'User-Agent': chrome}
    filename = url.split('/')[-1].strip()
    r = requests.get(url.strip(), headers=headers, stream=True)
    with open(filename, 'wb') as f:
        for chunk in r.iter_content(chunk_size=1024):
            if chunk:
                f.write(chunk)
                f.flush()
    print filename, "is ok"

def removeLine(key, filename):
    os.system('sed -i /%s/d %s' % (key, filename))

if __name__ == "__main__":
    if len(sys.argv) == 2:
        filename = sys.argv[1]
        f = open(filename, "r")
        p = Pool(4)
        for line in f.readlines():
            if line:
                p.spawn(download, line.strip())
                key = line.split('/')[-1].strip()
                removeLine(key, filename)
        f.close()
        p.join()
    else:
        print 'Usage: python %s urls.txt' % sys.argv[0]

标签:python

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. yalewoo 发表 2017-11-18 09:09:02 机器学习实战3——用python画决策树
  2. yuer 发表 2018-10-18 10:38:12 python3+webpy+gunicorn原理与开发
  3. donaldhjw 发表 2011-04-27 11:29:07 奋战生活(一)
  4. donaldhjw 发表 2013-01-09 13:33:57 新浪微博传播路径图制作
  5. donaldhjw 发表 2013-01-21 14:57:56 Dropbox自动删除冗余文件的实现
  6. 博主 发表 2018-10-15 10:02:38 Python 实现的 HTTP 报文头回声服务
  7. 船长 发表 2018-10-14 16:00:00 深度学习教程:计算你的爱豆在荧屏上的出镜时间
  8. 妙音 发表 2018-10-14 00:13:17 pyinstaller编译出的exe被杀毒软件认为是木马
  9. 妙音 发表 2018-10-14 00:31:31 pyinstaller黑色窗口一闪而过怎么去掉
  10. fox64194167 发表 2018-10-11 09:03:40 np.cumsum
  11. 博主 发表 2018-10-01 10:34:57 如果你不知道做什么,那就学一门杂学吧
  12. fox64194167 发表 2018-10-07 03:00:43 numpy log

发表评论