使用Python下载提供用户名和密码的文件

时间:2014-03-19 05:02:13

标签: python

我的名为'blueberry.jpg'的文件开始下载,当我手动点击以下网址时提供用户名和密码在被询问时输入: http://example.com/blueberry/download

如何使用Python实现这一目标?

import urllib.request

url = 'http://example.com/blueberry/download'

data = urllib.request.urlopen(url).read()

fo = open('E:\\quail\\' + url.split('/')[1] + '.jpg', 'w')
print (data, file = fo)

fo.close()

但是上面的程序没有写入所需的文件,我该如何提供所需的用户名和密码?

2 个答案:

答案 0 :(得分:3)

使用requests,它为Python中的各种url库提供了更友好的界面:

import os
import requests

from urlparse import urlparse

username = 'foo'
password = 'sekret'

url = 'http://example.com/blueberry/download/somefile.jpg'
filename = os.path.basename(urlparse(url).path)

r = requests.get(url, auth=(username,password))

if r.status_code == 200:
   with open(filename, 'wb') as out:
      for bits in r.iter_content():
          out.write(bits)

答案 1 :(得分:0)

我愿意打赌你正在使用基本的身份验证。所以尝试执行以下操作:

import urllib.request

url = 'http://username:pwd@example.com/blueberry/download'

data = urllib.request.urlopen(url).read()

fo = open('E:\\quail\\' + url.split('/')[1] + '.jpg', 'w')
print (data, file = fo)

fo.close()

让我知道这是否有效。