Beispiel #1
0
    def __init__(
        self,
        firefox_cookies=None,
        parser=None,
        history=NoHistory(),
        proxy=None,
        logger=None,
        factory=None,
        responses_dirname=None,
    ):
        mechanize.Browser.__init__(self, history=history, factory=factory)
        self.logger = getLogger("browser", logger)

        self.addheaders = [["User-agent", self.USER_AGENT]]

        # Use a proxy
        self.proxy = proxy
        if proxy is not None:
            self.set_proxies(proxy)

        # Share cookies with firefox
        if firefox_cookies:
            # Try to load cookies
            try:
                from .firefox_cookies import FirefoxCookieJar

                self._cookie = FirefoxCookieJar(self.DOMAIN, firefox_cookies)
                self._cookie.load()
                self.set_cookiejar(self._cookie)
            except ImportError as e:
                logging.warning("Unable to store Firefox cookies: %s", e)
                self._cookie = None
        else:
            self._cookie = None

        if parser is None:
            parser = get_parser()()
        elif isinstance(parser, (tuple, list, basestring)):
            parser = get_parser(parser)()
        self.parser = parser
        self.lock = RLock()

        if self.DEBUG_HTTP:
            # display messages from httplib
            self.set_debug_http(True)

        if logging.root.level <= logging.DEBUG:
            # Enable log messages from mechanize.Browser
            self.set_debug_redirects(True)
            mech_logger = logging.getLogger("mechanize")
            mech_logger.setLevel(logging.INFO)

        self.responses_dirname = responses_dirname
        self.responses_count = 0
Beispiel #2
0
    def __init__(self,
                 firefox_cookies=None,
                 parser=None,
                 history=NoHistory(),
                 proxy=None,
                 logger=None,
                 factory=None,
                 responses_dirname=None):
        mechanize.Browser.__init__(self, history=history, factory=factory)
        self.logger = getLogger('browser', logger)
        self.responses_dirname = responses_dirname
        self.save_responses = responses_dirname is not None
        self.responses_count = 0

        self.addheaders = [['User-agent', self.USER_AGENT]]

        # Use a proxy
        self.proxy = proxy
        if proxy is not None:
            self.set_proxies(proxy)

        # Share cookies with firefox
        if firefox_cookies:
            # Try to load cookies
            try:
                from .firefox_cookies import FirefoxCookieJar
                self._cookie = FirefoxCookieJar(self.DOMAIN, firefox_cookies)
                self._cookie.load()
                self.set_cookiejar(self._cookie)
            except ImportError as e:
                logging.warning("Unable to store Firefox cookies: %s", e)
                self._cookie = None
        else:
            self._cookie = None

        if parser is None:
            parser = get_parser()()
        elif isinstance(parser, (tuple, list, basestring)):
            parser = get_parser(parser)()
        self.parser = parser
        self.lock = RLock()

        if self.DEBUG_HTTP:
            # display messages from httplib
            self.set_debug_http(True)

        if logging.root.level <= logging.DEBUG:
            # Enable log messages from mechanize.Browser
            self.set_debug_redirects(True)
            mech_logger = logging.getLogger("mechanize")
            mech_logger.setLevel(logging.INFO)
Beispiel #3
0
 def get_current(self):
     doc = self.browser.location('http://www.novaplanet.com/radionova/ontheair?origin=/')
     html = doc['track']['markup']
     parser = get_parser()()
     doc = parser.parse(StringIO(html))
     artist = u' '.join([txt.strip() for txt in doc.xpath('//div[@class="artist"]')[0].itertext()])
     title = u' '.join([txt.strip() for txt in doc.xpath('//div[@class="title"]')[0].itertext()])
     return unicode(artist).strip(), unicode(title).strip()
Beispiel #4
0
 def get_current(self):
     doc = self.browser.location(
         'http://www.novaplanet.com/radionova/ontheair?origin=/')
     html = doc['track']['markup']
     parser = get_parser()()
     doc = parser.parse(BytesIO(html))
     artist = u' '.join([
         txt.strip()
         for txt in doc.xpath('//div[@class="artist"]')[0].itertext()
     ])
     title = u' '.join([
         txt.strip()
         for txt in doc.xpath('//div[@class="title"]')[0].itertext()
     ])
     return unicode(artist).strip(), unicode(title).strip()
Beispiel #5
0
    def get_document(self, result, parser=None, encoding=None):
        """
        Get a parsed document from a stream.

        :param result: HTML page stream
        :type result: stream
        """
        if parser is None:
            parser = self.parser
        elif isinstance(parser, (basestring, list, tuple)):
            parser = get_parser(parser)()

        if encoding is None:
            encoding = self.ENCODING

        return parser.parse(result, encoding)
Beispiel #6
0
    def get_document(self, result, parser=None, encoding=None):
        """
        Get a parsed document from a stream.

        :param result: HTML page stream
        :type result: stream
        """
        if parser is None:
            parser = self.parser
        elif isinstance(parser, (basestring, list, tuple)):
            parser = get_parser(parser)()

        if encoding is None:
            encoding = self.ENCODING

        return parser.parse(result, encoding)