Python Mechanize для доступа к сайту Sharepoint - PullRequest
1 голос
/ 17 мая 2011

Я пытаюсь получить доступ к Sharepoint с помощью mechanize, но я получил ошибку 401. Вот код, который я использую:

import mechanize

url = "http://sharepoint:8080/foo/bar/foobar.aspx"

br.addheaders = [('User-agent', 'Mozilla/4.0(compatible; MSIE 7.0b; Windows NT 6.0)')]
br.add_password(url, 'domain\\user', 'myPassword')
r = br.open(url)
html = r.read()

Я что-то пропустил?

Ответы [ 3 ]

1 голос
/ 17 мая 2011

Вы случайно не пробовали Python Ntlm для доступа к SharePoint?

Примеры в документе Ntlm объяснят, как использовать его с Urllib2.Вставлено ниже кода для использования NTLM-аутентификации с использованием mechanize.

import mechanize
from ntlm import HTTPNtlmAuthHandler
pass_manager = mechanize.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, url, user, password)
auth_NTLM = HTTPNtlmAuthHandler.HTTPNtlmAuthHandler(pass_manager)

browser = mechanize.Browser()
browser.add_handler(auth_NTLM)

r = browser.open(url)
html = r.read()
0 голосов
/ 17 мая 2011

Глядя на использование в механизированных документах , вам нужно только указать имя пользователя (например, 'john_doe', попробуйте это

...
br.add_password(url, 'username_string', 'myPassword')
r = br.open(url)
html = r.get_data() # r.get_data() can be called many times without calling seek
0 голосов
/ 17 мая 2011

Попробуйте с:

br.addheaders = [('User-agent', 'Mozilla/4.0(compatible; MSIE 7.0b; Windows NT 6.0)'), ('Authorization', 'Basic %s:%s' % ('domain\\user', 'myPassword'))]

вместо

br.addheaders = [('User-agent', 'Mozilla/4.0(compatible; MSIE 7.0b; Windows NT 6.0)')]

Это должно работать, если ваш сервер sharepoint обеспечивает Basic Auth.

...