簡體   English   中英

如何從 python 中受密碼保護的 URL 下載文件?

[英]How to download a file from password protected URL in python?

from urllib.request import Request, urlopen   
import base64  
import logging  
import urllib  
import urllib.request  
import requests  

def run(file_path,password):  
    if file_path:  
            try:  
                request = Request(file_path)  
                base64string = base64.b64encode('{}:{}'.format('', password).encode())  
                #input_file = tempfile.NamedTemporaryFile()  
                request.add_header("Authorization", "Basic %s" % base64string)  
                result = urlopen(request)  
                print (result)  
                ur = result.geturl()  
                a = ur.split("/")[:-1]   
                print (a)  
                ', '.join(a[0:])  
                url = '/'.join(a)  
                print (url)  
                b = ur + "/download"  
                filename = "myfile"   
                input_file = requests.get(b,filename)  
            except Exception as e:  
                print(e)  

l = run("https://cloud.abc.co.uk/s/523aX3O8B5uOWlP","test123")
print (l)

這是受密碼保護的 URL https://cloud.abc.co.uk/s/523aX3O8B5uOWlP 我嘗試使用 urllib 和 base64 進行身份驗證。 這給了我https://cloud.abc.co.uk/s/523aX3O8B5uOWlP/authenticate。 這個 URL 重定向到https://cloud.abc.co.uk/s/523aX3O8B5uOWlP/download可以從那里下載文件。

request = Request(file_path)  
        base64string = base64.b64encode('{}{}'.format('',password).encode())   
        request.add_header("Authorization", "Basic %s" % base64string)  
        result = urlopen(request)  

我想繞過身份驗證憑據下載文件。

幾周前我在使用 JSON 文件時遇到了同樣的問題。 嘗試過這樣的事情。 希望它也適用於你。

import urllib2
url = "url"
password_mgr = HTTPPasswordMgrWithDefaultRealm()
password_mgr.add_password(None, url, 'username', 'password')
handler = HTTPBasicAuthHandler(password_mgr)
opener = build_opener(handler)
response = opener.open(url)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM