[browser2] add an XMLPage
This commit is contained in:
parent
22209d0020
commit
0ed7ed2b2d
2 changed files with 12 additions and 3 deletions
|
|
@ -18,8 +18,8 @@
|
||||||
# along with weboob. If not, see <http://www.gnu.org/licenses/>.
|
# along with weboob. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
from .browser import BaseBrowser, DomainBrowser, Wget, Firefox, UrlNotAllowed, Profile
|
from .browser import BaseBrowser, DomainBrowser, Wget, Firefox, UrlNotAllowed, Profile
|
||||||
from .page import PagesBrowser, BasePage, URL, HTMLPage, LoginBrowser, need_login, JsonPage, LoggedPage
|
from .page import PagesBrowser, BasePage, URL, HTMLPage, LoginBrowser, need_login, JsonPage, LoggedPage, XMLPage
|
||||||
|
|
||||||
|
|
||||||
__all__ = ['BaseBrowser', 'DomainBrowser', 'Wget', 'Firefox', 'UrlNotAllowed', 'Profile',
|
__all__ = ['BaseBrowser', 'DomainBrowser', 'Wget', 'Firefox', 'UrlNotAllowed', 'Profile', 'XMLPage',
|
||||||
'PagesBrowser', 'BasePage', 'URL', 'HTMLPage', 'LoginBrowser', 'need_login', 'JsonPage', 'LoggedPage']
|
'PagesBrowser', 'BasePage', 'URL', 'HTMLPage', 'LoginBrowser', 'need_login', 'JsonPage', 'LoggedPage']
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,7 @@ import sys
|
||||||
from copy import deepcopy
|
from copy import deepcopy
|
||||||
from cStringIO import StringIO
|
from cStringIO import StringIO
|
||||||
import lxml.html as html
|
import lxml.html as html
|
||||||
|
import lxml.etree as etree
|
||||||
|
|
||||||
from weboob.tools.json import json
|
from weboob.tools.json import json
|
||||||
from weboob.tools.ordereddict import OrderedDict
|
from weboob.tools.ordereddict import OrderedDict
|
||||||
|
|
@ -332,7 +333,7 @@ class LoginBrowser(PagesBrowser):
|
||||||
self.password = password
|
self.password = password
|
||||||
|
|
||||||
def do_login(self):
|
def do_login(self):
|
||||||
""""
|
"""
|
||||||
Abstract method to implement to login on website.
|
Abstract method to implement to login on website.
|
||||||
|
|
||||||
It is call when a login is needed.
|
It is call when a login is needed.
|
||||||
|
|
@ -417,12 +418,20 @@ class Form(OrderedDict):
|
||||||
"""
|
"""
|
||||||
return self.page.browser.location(self.request)
|
return self.page.browser.location(self.request)
|
||||||
|
|
||||||
|
|
||||||
class JsonPage(BasePage):
|
class JsonPage(BasePage):
|
||||||
def __init__(self, browser, response, *args, **kwargs):
|
def __init__(self, browser, response, *args, **kwargs):
|
||||||
super(JsonPage, self).__init__(browser, response, *args, **kwargs)
|
super(JsonPage, self).__init__(browser, response, *args, **kwargs)
|
||||||
self.doc = json.loads(response.text)
|
self.doc = json.loads(response.text)
|
||||||
|
|
||||||
|
|
||||||
|
class XMLPage(BasePage):
|
||||||
|
def __init__(self, browser, response, *args, **kwargs):
|
||||||
|
super(XMLPage, self).__init__(browser, response, *args, **kwargs)
|
||||||
|
parser = etree.XMLParser(encoding=response.encoding)
|
||||||
|
self.doc = etree.parse(StringIO(response.content), parser)
|
||||||
|
|
||||||
|
|
||||||
class RawPage(BasePage):
|
class RawPage(BasePage):
|
||||||
def __init__(self, browser, response, *args, **kwargs):
|
def __init__(self, browser, response, *args, **kwargs):
|
||||||
super(RawPage, self).__init__(browser, response, *args, **kwargs)
|
super(RawPage, self).__init__(browser, response, *args, **kwargs)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue