docs: def parse(self):
          """Get new data, parses it and returns a device."""
          # fetch data
          sess = requests.session()
          request = sess.get('https://{}/{}'.format(self.locale,
                                                    self.product_id),
                             allow_redirects=True,
                             timeout=2)
          sess.close()
  
          # raise exception, e.g. if we are blocked because of too many requests
          request.raise_for_status()
  
          soup = BeautifulSoup(request.text, 'html.parser')
  
          # parse name
          raw = soup.find('h1', attrs={'class': 'gh-headline'})
          self.device.name = raw.string.replace('\n', '')
  
          # parse prices
          self.device.prices = []
          for tmp in soup.select('div.offer__price .gh_price'):
              matches = re.search(_REGEX, tmp.string)
              raw = '{}.{}'.format(matches.group(1),
                                   matches.group(2))
              self.device.prices += [float(raw)]
  
          # parse unit
          price_match = soup.find('span', attrs={'class': 'gh_price'})
          matches = re.search(r'€|£|PLN', price_match.string)
          self.device.price_currency = matches.group()
  
          return self.device