From 06cee506f9da419f4462fb2c418fdc105b679b00 Mon Sep 17 00:00:00 2001 From: Bezleputh Date: Thu, 20 Mar 2014 00:39:39 +0100 Subject: [PATCH] [browser2] Add JsonPage --- weboob/tools/browser2/__init__.py | 4 ++-- weboob/tools/browser2/page.py | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/weboob/tools/browser2/__init__.py b/weboob/tools/browser2/__init__.py index 69a44469..3de27a0b 100644 --- a/weboob/tools/browser2/__init__.py +++ b/weboob/tools/browser2/__init__.py @@ -18,8 +18,8 @@ # along with weboob. If not, see . from .browser import BaseBrowser, DomainBrowser, Wget, Firefox, UrlNotAllowed, Profile -from .page import PagesBrowser, BasePage, URL, HTMLPage, LoginBrowser, need_login +from .page import PagesBrowser, BasePage, URL, HTMLPage, LoginBrowser, need_login, JsonPage __all__ = ['BaseBrowser', 'DomainBrowser', 'Wget', 'Firefox', 'UrlNotAllowed', 'Profile', - 'PagesBrowser', 'BasePage', 'URL', 'HTMLPage', 'LoginBrowser', 'need_login'] + 'PagesBrowser', 'BasePage', 'URL', 'HTMLPage', 'LoginBrowser', 'need_login', 'JsonPage'] diff --git a/weboob/tools/browser2/page.py b/weboob/tools/browser2/page.py index d5f2f02c..c74e889f 100644 --- a/weboob/tools/browser2/page.py +++ b/weboob/tools/browser2/page.py @@ -28,6 +28,10 @@ import lxml.html as html from weboob.tools.ordereddict import OrderedDict from weboob.tools.regex_helper import normalize + +from weboob.tools.parsers.lxmlparser import LxmlHtmlParser +from weboob.tools.parsers.jsonparser import JsonParser + from weboob.tools.log import getLogger from .browser import DomainBrowser @@ -395,6 +399,11 @@ class Form(OrderedDict): """ return self.page.browser.location(self.request) +class JsonPage(BasePage): + def __init__(self, browser, response, *args, **kwargs): + super(JsonPage, self).__init__(browser, response, *args, **kwargs) + parser = JsonParser() + self.doc = parser.parse(StringIO(response.content), response.encoding) class HTMLPage(BasePage): """