1

私は自分の仕事をするためのより速い方法を探しています。私は40000ファイルのダウンロード可能なURLを持っています。ローカルデスクトップにダウンロードしたいのですが、現在私が行っているのは、ブラウザにリンクを配置してからスクリプトを介してダウンロードすることです。今私が探しているのは、10個のURLをチャンクに配置することです。アドレスバーと10個のファイルを同時にダウンロードします。可能であれば、全体の時間が短縮されることを期待します。

申し訳ありませんが、コードを提供するのに遅れました。

def _download_file(url, filename):
    """
    Given a URL and a filename, this method will save a file locally to the»
    destination_directory path.
    """
    if not os.path.exists(destination_directory):
        print 'Directory [%s] does not exist, Creating directory...' % destination_directory
        os.makedirs(destination_directory)
    try:
        urllib.urlretrieve(url, os.path.join(destination_directory, filename))
        print 'Downloading File [%s]' % (filename)
    except:
        print 'Error Downloading File [%s]' % (filename)


def _download_all(main_url):
    """
    Given a URL list, this method will download each file in the destination
    directory.
    """

    url_list = _create_url_list(main_url)
    for url in url_list:
        _download_file(url, _get_file_name(url))

ありがとう、

4

1 に答える 1

2

なぜブラウザを使うのですか?これはXY問題のようです。

ファイルをダウンロードするには、リクエストのようなライブラリを使用します(またはシステムコールを実行しますwget)。

このようなもの:

import requests

def download_file_from_url(url, file_save_path):
    r = requests.get(url)
    if r.ok: # checks if the download succeeded
        with file(file_save_path, 'w') as f: 
           f.write(r.content)
        return True
    else:
        return r.status_code

download_file_from_url('http://imgs.xkcd.com/comics/tech_support_cheat_sheet.png', 'new_image.png')
# will download image and save to current directory as 'new_image.png'

最初に、好みのPythonパッケージマネージャーを使用してリクエストをインストールする必要がありますpip install requests。あなたはまた、より空想を得ることができます。例えば、

于 2013-01-08T21:21:53.837 に答える