Добрый день. Подскажите в чем проблема?
через urllib2 хочу получить информацию с микротика через вэб, делаю запрос, в итоге ошибка HTTP Error 406: Not Acceptableб ошибку гуглил - понять не могу как исправить
Вот код:
import os, re, json, pickle, time
import httplib, socket, urlparse
import urllib2
class Mikrotik():
def __init__(self, host, login, passwd, realm='admin'):
try:
self.ip, self.host = host, 'http://' + host + '/webfig/'
self.login, self.passwd, self.realm = login, passwd, realm
self.opener = self._build_opener()
except Exception as e:
print e
#exception_log.write('Exception in __init__(self, %s, %s, %s, %s): %s' % (host, login, passwd, realm, e))
def _build_opener(self):
try:
auth_handler = urllib2.HTTPDigestAuthHandler()
auth_handler.add_password(self.realm, self.host, self.login, self.passwd)
print ("_build_opener = {}" .format(urllib2.build_opener(auth_handler)))
return urllib2.build_opener(auth_handler)
except Exception as e:
print "Eror"
print e
#exception_log.write('Exception in _build_opener(self): %s' % (e))
def _request(self, req):
print ("{}" .format(self.host+req))
try:
try:
request = self.opener.open(self.host + req, timeout=2)
response = request.read()
request.close()
return response
except (urllib2.URLError, httplib.HTTPException, socket.timeout) as e:
print e
try:
if e.code == 401:
return 401
else:
return 'N/A'
except AttributeError:
return 'N/A'
except Exception as e:
print e
def get_health(self):
try:
health = self._request('#Interfaces.Ethernet')
return health
except Exception as e:
print e
#exception_log.write('Exception in get_port_stats(self, %s): %s' % (port_num, e))
return {}
test = Mikrotik("192.168.0.102", "admin", "Hesoyam12345")
d = test.get_health()
print d
вот ответ:
_build_opener = <urllib2.OpenerDirector instance at 0x0000000003B26948>
http://192.168.0.102/webfig/#Interfaces.Ethernet
HTTP Error 406: Not Acceptable
N/A
печатаю что отправляю в запрос
192.168.0.102/webfig/#Interfaces.Ethernet
пароль логин верны, на сам вэб захожу по этой ссылке