Esempio n. 1
0
    def get_investment(self):
        Decimal = CleanDecimal(replace_dots=True).filter

        for tr in self._tr_list(self.document):
            cells = list(el_to_string(td) for td in self._td_list(tr))
            link = unicode(self._link(tr)[0])

            '''

            Boursorama table cells
            ----------------------

            0. Fonds
            1. Date de valeur
            2. Valeur de part
            3. Nombre de parts
            4. Contre valeur
            5. Prix revient
            6. +/- value en €*
            7. +/- value en %*

            Investment model
            ----------------

            label =       StringField('Label of stocks')
            code =        StringField('Identifier of the stock (ISIN code)')
            description = StringField('Short description of the stock')
            quantity =    IntField('Quantity of stocks')
            unitprice =   DecimalField('Buy price of one stock')
            unitvalue =   DecimalField('Current value of one stock')
            valuation =   DecimalField('Total current valuation of the Investment')
            diff =        DecimalField('Difference between the buy cost and the current valuation')

            '''

            inv = Investment()
            isin = self.get_isin(link)

            if isin:
                inv.id = inv.code = isin
            inv.label = cells[0]
            inv.quantity = Decimal(cells[3])
            inv.valuation = Decimal(cells[4])
            inv.unitprice = Decimal(cells[5])
            inv.unitvalue = Decimal(cells[2])
            inv.diff = Decimal(cells[6])

            inv._detail_url = link if '/cours.phtml' in link else None

            yield inv
Esempio n. 2
0
    def get_investment(self):
        Decimal = CleanDecimal(replace_dots=True).filter

        for tr in self._tr_list(self.document):
            cells = [el_to_string(td) for td in self._td_list(tr)]
            link = unicode(self._link(tr)[0])
            '''

            Boursorama table cells
            ----------------------

            0. Fonds
            1. Date de valeur
            2. Valeur de part
            3. Nombre de parts
            4. Contre valeur
            5. Prix revient
            6. +/- value en €*
            7. +/- value en %*

            Investment model
            ----------------

            label =       StringField('Label of stocks')
            code =        StringField('Identifier of the stock (ISIN code)')
            description = StringField('Short description of the stock')
            quantity =    IntField('Quantity of stocks')
            unitprice =   DecimalField('Buy price of one stock')
            unitvalue =   DecimalField('Current value of one stock')
            valuation =   DecimalField('Total current valuation of the Investment')
            diff =        DecimalField('Difference between the buy cost and the current valuation')

            '''

            inv = Investment()
            isin = self.get_isin(link)

            if isin:
                inv.id = inv.code = isin
            inv.label = cells[0]
            inv.quantity = Decimal(cells[3])
            inv.valuation = Decimal(cells[4])
            inv.unitprice = Decimal(cells[5])
            inv.unitvalue = Decimal(cells[2])
            inv.diff = Decimal(cells[6])

            inv._detail_url = link if '/cours.phtml' in link else None

            yield inv
Esempio n. 3
0
    def get_investment(self):
        for tr in self.document.xpath('//table[@id="liste-positions-engagements"]/tbody/tr'):
            cells = tr.xpath('./td')

            if len(cells) < 6:
                continue

            inv = Investment()
            inv.label = self.parser.tocleanstring(cells[0].xpath('.//a')[0])
            isin_div = cells[0].xpath('.//div')
            if len(isin_div) > 0:
                inv.id = inv.code = self.parser.tocleanstring(isin_div[0])

            inv.quantity = Decimal(cells[1])
            # <td data-header="Cours">20,650<br>(<span class="varup">+0,54%</span>)</td>
            inv.unitprice = Decimal(cells[2].xpath('text()')[0])
            inv.unitvalue = Decimal(cells[3].xpath('text()')[0])
            inv.valuation = Decimal(cells[4])
            inv.diff = Decimal(cells[5])
            inv._detail_url = None

            yield inv