使用python urllib2从HTTPS页面下载文件
我正在尝试使用 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)