可以使用python一次性在浏览器中打开多个选项卡吗?

时间:2013-01-08 19:10:13

标签: python selenium python-2.7

我正在寻找一种更快捷的方式来完成我的任务。我有40000文件可下载的网址。我想在本地桌面上下载它们。现在我想到的是将链接放在浏览器上,然后通过脚本下载它们。现在我要找的是将10个网址放入一个块中地址栏并同时下载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))

谢谢,

1 个答案:

答案 0 :(得分:2)

为什么要使用浏览器?这似乎是XY problem

要下载文件,我会使用requests之类的库(或对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。你也可以变得更加漂亮;例如,