使用python urllib2从HTTPS页面下载文件

0 投票
1 回答
1685 浏览
提问于 2025-04-18 15:09

我正在尝试使用 Python 2.6.8 的 urllib2 库从 SharePoint 服务器下载一个 Excel 文件。因为 SharePoint 是需要密码保护的,所以我也传递了用户名和密码。

我的代码是这样的。

import urllib2
import os.path

theurl = 'https://Mycompany.sharepoint.com/_layouts/15/WopiFrame.aspx?sourcedoc=XXXX&file=IPS_cleaned.xlsx&action=defaultclear'
username = ''
password = ''
headers={'User-agent' : 'Mozilla/5.0'}

passman = urllib2.HTTPPasswordMgrWithDefaultRealm()

passman.add_password(None, theurl, username, password)
authhandler = urllib2.HTTPBasicAuthHandler(passman)

opener = urllib2.build_opener(authhandler)
urllib2.install_opener(opener)

req = urllib2.Request(theurl, None, headers)
pagehandle = urllib2.urlopen(req).read()
with open('/home/neilshah/newfile.xlsx',"wb") as code:
    code.write(pagehandle.read())

但是我遇到了以下错误。

urllib2.URLError: <urlopen error [Errno 104] Connection reset by peer>

请帮我解决这个问题。

1 个回答

0

试试这样做:

import urllib2,base64

request = urllib2.Request(theurl)
base64string = base64.encodestring('%s:%s' % (username, password)).replace('\n', '')
request.add_header("Authorization", "Basic %s" % base64string)   
result = urllib2.urlopen(request)

撰写回答