abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

včera 18:11 | Nová verze

Společnost Oracle oficiálně oznámila vydání Java SE 9 (JDK 9), Java Platform Enterprise Edition 8 (Java EE 8) a Java EE 8 Software Development Kit (SDK). Java SE 9 přináší více než 150 nových vlastností.

Ladislav Hagara | Komentářů: 0
včera 12:11 | Komunita

Na Humble Bundle lze získat hororovou počítačovou hru Outlast (Wikipedie) běžící také v Linuxu zdarma. Speciální akce končí v sobotu v 19:00.

Ladislav Hagara | Komentářů: 1
včera 10:33 | Humor

Mozilla.cz upozorňuje na Knihu Mozilly (Wikipedie), tj. velikonoční vajíčko ve Firefoxu. Zobrazit jej lze zadáním about:mozilla do adresního řádku. Aktuální verze Firefoxu obsahuje proroctví 15:1 "Dvojčata Mamonu se rozhádala a jejich souboje uvrhly svět do nové tmy. Zvířeti se ale tma hnusila. A tak se stalo mrštnější a silnější, šlo vpřed a jeho počty rostly. A zvíře přineslo oheň a světlo do tmy". Firefox 57 bude obsahovat proroctví 11:14. To je zatím jenom v angličtině. Pomoci lze s překladem do češtiny.

Ladislav Hagara | Komentářů: 8
včera 01:22 | Zajímavý projekt
Před měsícem byla spuštěna kampaň na podporu chytrého telefonu Librem 5, jenž by měl respektovat bezpečnost, svobodu a soukromí uživatelů. Cílem kampaně je vybrat alespoň milion a půl dolarů. Aktuálně je vybráno přes 600 000 dolarů, tj. 40 %. Kampaň poběží ještě další měsíc. Podporu projektu oznámilo KDE i GNOME.
Ladislav Hagara | Komentářů: 27
včera 00:55 | Komunita

Agentura DISA (Defense Information Systems Agency) publikovala (pdf) Ubuntu 16.04 Security Technical Implementation Guide (STIG) (zip), tj. doporučené bezpečnostní nastavení Ubuntu 16.04. Ubuntu se tak dostalo mezi unixové operační systémy a linuxové distribuce AIX, HP-UX, Oracle Linux, Red Hat a Solaris [reddit].

Ladislav Hagara | Komentářů: 2
21.9. 22:55 | Bezpečnostní upozornění

CSIRT.CZ informuje, že byly vydány nové bezpečnostní aktualizace, které opravují několik zranitelných míst v Sambě. Útočník může využít zranitelnosti s cílem získání přístupu k potenciálně citlivých informací. Uživatelům a správcům je doporučeno, aby zkontrolovali bezpečnostní opatření pro CVE-2017-12150, CVE-2017-12151 a CVE-2017-12163 a provedli potřebné aktualizace.

Ladislav Hagara | Komentářů: 0
21.9. 21:44 | Komunita

Společnost Red Hat aktualizovala svůj slib ohledně softwarových patentů. Slib nově zahrnuje i open source software pod permisivními licencemi.

Ladislav Hagara | Komentářů: 0
21.9. 08:55 | Komunita

Do 22. září probíhá v Mountain View konference XDC2017 (X.Org Developer's Conference). Na programu je řada zajímavých přednášek. Sledovat je lze online. K dispozici je záznam přednášek ze včerejšího dne.

Ladislav Hagara | Komentářů: 0
20.9. 17:33 | Nová verze

Byla vydána nová stabilní verze 1.12 (1.12.955.36) webového prohlížeče Vivaldi (Wikipedie). Z novinek vývojáři zdůrazňují možnost zobrazení metadat u digitálních fotografií, vylepšený panel stahování a omezení sytosti barvy zdůraznění (YouTube). Nejnovější Vivaldi je postaveno na Chromiu 61.0.3163.91.

Ladislav Hagara | Komentářů: 40
20.9. 10:55 | Nová verze

Byla vydána verze 4.0 programovacího jazyka Swift (Wikipedie). Zdrojové kódy jsou k dispozici na GitHubu. Ke stažení jsou oficiální binární balíčky pro Ubuntu 16.10, Ubuntu 16.04 a Ubuntu 14.04.

Ladislav Hagara | Komentářů: 5
Těžíte nějakou kryptoměnu?
 (5%)
 (3%)
 (17%)
 (75%)
Celkem 558 hlasů
 Komentářů: 22, poslední 29.8. 11:23
    Rozcestník

    Dotaz: parser na HTML tabulku

    3.1.2007 23:12 Zdeněk Štěpánek | skóre: 57 | blog: uz_mam_taky_blog | varnsdorf
    parser na HTML tabulku
    Přečteno: 842×
    Zdravim

    Mame transparentni ucet u eBanky a potrebuju napsat parser a vycucat z toho neco jako CSV:

    datum;variabilni symbol;castka

    http://www.ebanka.cz/Fire...ber=2588438001

    Napadu mam spoustu, ale bohuzel vladnu jen prikazy typu cut, grep, sort apod, ale awk a sed uz jdou ponekud mimo me, muze me nekdo nakopnout?

    Nejprve je asi potreba vyjmout cast mezi <tbody> a </tbody> a pak jednotlive radky bunky preskladat tak aby v plaintextu byly skutecne na jednom radku a pk uz na to muzu postat cut.

    Diky vsem.

    Zdenek
    www.pirati.cz - s piráty do parlamentu i jinam www.gavanet.org - czfree varnsdorf

    Odpovědi

    4.1.2007 00:24 R
    Rozbalit Rozbalit vše Re: parser na HTML tabulku
    A musi to byt v shelli? Na taketo veci pouzivam PHP skripty (daju sa spustat aj z command line) - daju sa pouzivat veci ako strip_tags(), str_replace(), explode()...
    4.1.2007 09:36 Jiří Lisický | skóre: 31 | blog: JIL_blog | Olomouc
    Rozbalit Rozbalit vše Re: parser na HTML tabulku
    Je to takový nespolehlivý, změní ti trochu zdroják stránky a parser se ti rozpadne. V první řadě bych se zkusil zeptat přímo ebanky jestli nedělají nějaký csv export. Když jsem to dal u nich vyhledat našlo mi to nějaký windowsový program, který to zřejmě umí.

    Pokud trváš na vlastním parseru možná by šlo pomoci si elinksem:

    elinks -dump-charset UTF-8 -dump-width 150 -dump http://www.ebanka.cz/Firemni-finance/Firemni-ucet/Transparentni-ucet/trAccountDetail.jsp?accountNumber=2588438001

    A na to awk doporučuju se mrknout. stojí to za to ;-)
    4.1.2007 15:27 Zdeněk Štěpánek | skóre: 57 | blog: uz_mam_taky_blog | varnsdorf
    Rozbalit Rozbalit vše Re: parser na HTML tabulku
    CVS export mi drive davala Ceska Sporitelna po te, co jsem se pomoci WWW::Mechanize pomoci SSL, jmena a hesla prihlasil na ucet. To by bylo samouzrejme idelani.

    Zkusim to z nich nejak vydolovat.

    V principu to muze byt v jakemkoliv jazyku, vklidu i v PHP

    Awk a bratricek sed jsou mocne nastroje, ale bohuzel casu na uceni je malo.

    Zkusim ten elinks nebo podobne veci.

    Zdenek
    www.pirati.cz - s piráty do parlamentu i jinam www.gavanet.org - czfree varnsdorf
    5.1.2007 15:07 Zdeněk Štěpánek | skóre: 57 | blog: uz_mam_taky_blog | varnsdorf
    Rozbalit Rozbalit vše Re: parser na HTML tabulku
    Takze s eBankou jsme vubec neuspel (cist odspodu):

    S elinksem jsem tez neuspel, muzete me nekdo nakopnout s tim sedem, awkem a dalsimi kamarady?

    -------------------------------------------

    Zdravim

    Dekuji za odpoved, nicmene s nabizenou variantou jsem zcela nespokojen.

    1) Program je pouze pro MS Windows, coz je mi vcelku nanic, to na serveru opravdu nemam, ani nikde jinde.
    2) K programu by jste museli dodavat i otroka aby jsme mohli mluvit o skutecnem automatickem zpracovani.
    3) Dokonce i ceska sporitelna to ma zadarmo, tak proc ne eBanka?

    Holt mi nezbyde nic jineho nez si na webovy vypis z uctu napsat vlastni parser, ktery mi vyplivne CSV data.

    Nicmene i tak vam dekuju za odpoved a doufam ze s dalsimi sluzbami jiz budu spokojen vice. Jelikoz jeden nespokojeny uzivatel s eBankou zrejme nepohne, povazuji tuto vec za uzavrenou.

    Zdenek Stepanek

    ------
    Prejdete na stranu svobody!

    Prejdete na OpenOffice.org - www.openoffice.cz
    Prejdete na Linux - www.linux.cz
    Prejdete na Jabber - www.jabber.cz

    WEB@ebanka.cz wrote:
    > Vazeny pane Stepanku,
    >
    > dovolte nam reagovat na Vas e-mail.
    >
    > Pro potreby ziskani vypisu v podobe pouzitelne pro dalsi elektronicke
    > zpracovani eBanka majitelum Firemnich i Transparentnich uctu nabizi
    > aplikaci nazvanou eKomunikator. Prostrednictvim tohoto programu lze
    > zajistit pohodlnou komunikaci mezi uctem klienta a jeho ucetnim programem.
    > Prostrednictvim eKomunikatoru lze odesilat hromadne prikazy k uhrade/inkasu
    > a stahovat vypisy z uctu ve formatu, ktery je pouzitelny pro dalsi
    > elektronicke zpracovani. Podrobne informace o programu eKomunikator, vcetne
    > podrobne Uzivatelske prirucky, muzete najit pod odkazem
    > http://www.ebanka.cz/Firemni-finance/Prime-bankovnictvi/Propojeni-s-ucetnictvim.html
    >
    > Vypisy lze pres eKomunikator stahovat ve formatu ABO ci Gemini. Prijatou
    > davku s vypisy lze primo v Manualnim zpracovani ulozit jako soubor s daty
    > oddelenymi stredniky (take znam jako CSV format).
    > Instalaci programu eKomunikator lze provest primo na svem uctu. Pri
    > instalaci doporucuji pouzit Uzivatelskou prirucku. Po instalaci je nutne
    > vytvorit SOI (soubor osobnich informaci), Vas soukromy a Verejny klic a
    > zadost o registraci Verejneho klice. S zadosti o registraci ulozenou na
    > diskete je treba navstivit Klientske centrum eBanky. Registraci muzeme
    > realizovat pri nasem setkani.
    > Poplatky souvisejici s vyuzvanim tohoto programu jsou uvedeny v platnem
    > Ceniku eBanky.
    >
    > V pripade dalsich dotazu Vam jsme opet k dispozici.
    >
    > S pranim hezkeho dne
    >
    > Katerina Kubikova
    > Klientsky servis
    > eBanka
    >
    >
    >
    >
    > Zdenek stepanek <zdenek@gavanet.org> on 04.01.2007 17:25:05
    >
    >
    > To: klient@ebanka.cz
    > cc:
    >
    > Subject: strojove zpracovatelny vypis z uctu
    >
    > Zpracováno: |---------|
    > | [X] Ano |
    > |---------|
    > Zpracoval(a): Katerina Kubikova
    > Dobry den,
    >
    > obcanske sdruzeni, jehoz jsem predsedou ma u vas transparentni ucet. Pro
    > nas system potrebuji ziskavat vypis z uctu v nejake strojove
    > zpracovatelne podobe, je mozne vypis stahovat ve formátu CVS nebo
    > jakemkoliv jinem standardnim formatu, ktery bych moh dale automaticky
    > zpracovavat pomoci pocitace?
    >
    > Dekuji za odpoved.
    > --
    >
    > Zdenek Stepanek
    >
    > ------
    > Tato emailova zprava nemuze obsahovat virus protoze nepouzivam Windows.
    >
    www.pirati.cz - s piráty do parlamentu i jinam www.gavanet.org - czfree varnsdorf
    5.1.2007 15:56 Pavel1 | skóre: 33
    Rozbalit Rozbalit vše Re: parser na HTML tabulku
    S elinksem jsem tez neuspel, muzete me nekdo nakopnout s tim sedem, awkem a dalsimi kamarady?
    Jak neuspěl? Já toto zkusil :
    elinks -dump-width 150 -dump http://www.ebanka.cz/Firemni-finance/Firemni-ucet/Transparentni-ucet/trAccountDetail.jsp?accountNumber=2588438001        
    
    a obdržel jsem pěkný textový výpis, který už by neměl být problém dále zpracovávat ve skriptu (za pomoci potřebných programů, jako sed, grep, sort, ......) a dovést ho do potřebné struktury.
    5.1.2007 15:34 martyone
    Rozbalit Rozbalit vše Re: parser na HTML tabulku
    xmllint?
    5.1.2007 23:41 Zdeněk Štěpánek | skóre: 57 | blog: uz_mam_taky_blog | varnsdorf
    Rozbalit Rozbalit vše Re: parser na HTML tabulku
    Hlasim uspech s PHP. Zde je testovaci kod vznikly metodou pokus-omyl, jeste to chce ucesat.

    <?php
    
    $string = strstr(file_get_contents ('dataget2'), '<tbody>');
    
    $pozice = strpos ($string, '</tbody>');
    
    $string2 = substr ($string, 0, $pozice);
    
    #$string3 = html_entity_decode ($string2);
    
    $dopryc = array(" class=\"odd\"", " class=\"even\"", "\n", " ", "<tbody>", " ", "td", "br");
    
    $string3 = str_replace($dopryc, "", $string2);
    $string4 = str_replace("</tr>", "</tr>\n", $string3);
    $dopryc = array("<", ">", "tr");
    $string5 = str_replace($dopryc, "", $string4);
    $string6 = str_replace("/", ";", $string5);
    $dopryc = array(";;;;;;", ";;;;;", ";;;", ";;");
    $string7 = str_replace($dopryc, ";", $string6);
    
    echo $string7;
    
    ?>

    Zdenek
    www.pirati.cz - s piráty do parlamentu i jinam www.gavanet.org - czfree varnsdorf
    Josef Kufner avatar 6.1.2007 00:59 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: parser na HTML tabulku
    Nauč se perl, na tohle je šikovnější ;-)
    Hello world ! Segmentation fault (core dumped)
    6.1.2007 09:12 Zdeněk Štěpánek | skóre: 57 | blog: uz_mam_taky_blog | varnsdorf
    Rozbalit Rozbalit vše Re: parser na HTML tabulku
    Diky za radu, perlem bohuzel neperlim, i kdyz taky bych rad, ten jazyk mam rad.

    Pro zvidave: Odstranovat vicenasobny vyskyt stredniku neni dobry napad, jelikoz tim muzou zmizet 2 stredniky ktere mezi sebou maji prazdnou hodnotu a v jinem radku je ta hodnota zadana. Napadlo me to az moc pozde.

    Nicmene ja budu zpracovavat pouze prichozi platby, tak jsem nad tim nejak nepremyslel, ale jako nakopnuti pro dalsi hledace je to snad pouzitelne, takove quick and dirty reseni.

    Zdenek
    www.pirati.cz - s piráty do parlamentu i jinam www.gavanet.org - czfree varnsdorf
    6.1.2007 09:17 Tomáš Honzák | skóre: 19 | Praha
    Rozbalit Rozbalit vše Re: parser na HTML tabulku
    Potvrzuju -- pro perl se dá mj. přímo dohledat modul na parsování HTML tabulek ...

    use HTML::TableExtract;

    a přes něj se pak dá (mj.):
  • dohledat tabulka např. podle atributů
  • a dohledaná tabulka procházet řádek po řádce tak, že obsahy buněk jsou rovnou nacpaná v poli.

    Já to používám v kombinaci s WWW::Mechanize (modul na vyplňování a odesílání formulářů na webu) k "real-time" parsování účtů za VoIP telefonii u jednoho klienta.
  • 6.1.2007 20:53 Zdeněk Štěpánek | skóre: 57 | blog: uz_mam_taky_blog | varnsdorf
    Rozbalit Rozbalit vše ez
    Mam na to prima vzpominky. WWW::Mechanize se mi prihlasoval do cesky sporitelny a stahoval vypis primo v CSV, sporka ho primo nabizi. Sice to fungovalo pekne, ale je to ukazka toho, jak je sporka "bezpecna". standardny webovy formular skrze https. Stejny zabezpeceni pouzivaj i paranoidnejsi webovy diskuze. Dnesk uz prej maj tu telefoni kontrolu...

    Taky se mi perl koukal na konto u adsl, taky fajn.

    Jinak diky vsem co nize prispeli se svymy kody, nejspis trochu zabrednu do pythonu.

    Zdenek
    www.pirati.cz - s piráty do parlamentu i jinam www.gavanet.org - czfree varnsdorf
    Josef Kufner avatar 6.1.2007 23:43 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: ez
    Pokud šlo jen o výpis transakcí, tak bych se toho nebál. Trápilo by mě, kdyby se takle ty transakce i potvrzovaly.
    Hello world ! Segmentation fault (core dumped)
    6.1.2007 09:56 Botanicus2 | skóre: 2 | blog: Vyber_distra
    Rozbalit Rozbalit vše Re: parser na HTML tabulku
    Perl? Ale fuj, dneska, kdyz mame Ruby?
    6.1.2007 10:01 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: parser na HTML tabulku
    Je celkem pohodlné použít html parser z nějaké knihovny. Následující program předpokládá docela málo věcí o formátu html zdrojáku. Není tam ani jediný regulární výraz nebo nahrazování textu. Použitý parser vyhledává přímo html tagy, jejich atributy atd. Program správně vyhledá i prázdné položky v tabulce.

    Získaná data se ukládají do seznamu, kde jsou uloženy trojice datum, variabilní symbol a částka. Výstup vypadá takto:
    Datum: 2007-01-05 04:21:39.0 Variabilni symbol: 28 Castka: 400.00
    Datum: 2007-01-03 05:35:26.0 Variabilni symbol: 5 Castka: 400.00
    Datum: 2007-01-03 05:35:23.0 Variabilni symbol: 33 Castka: 400.00
    Datum: 2007-01-03 05:33:14.0 Variabilni symbol: 51 Castka: 800.00
    Datum: 2007-01-02 09:36:02.0 Variabilni symbol: 16 Castka: 400.00
    Datum: 2007-01-02 05:57:28.0 Variabilni symbol: 49 Castka: 400.00
    Datum: 2007-01-01 23:59:59.0 Variabilni symbol:  Castka: 
    Datum: 2006-12-31 23:59:59.0 Variabilni symbol:  Castka: 0.04
    Datum: 2006-12-28 06:40:52.0 Variabilni symbol: 8 Castka: 400.00
    Datum: 2006-12-28 05:48:15.0 Variabilni symbol: 48 Castka: 400.00
    Datum: 2006-12-20 17:57:35.0 Variabilni symbol:  Castka: 1000.00
    
    Navíc je použita primitivní cache, která stáhne zdrojový kód z netu jen tehdy, pokud ho nenajde již dříve uložený na disk (což se hodí při ladění).
    #!/usr/bin/env python
    import urllib2
    from HTMLParser import HTMLParser
    
    class MyHTMLParser(HTMLParser):
    
        def parse(self, html):
            self.tdcounter = 0
            self.within_tbody = False
            self.thead_found = False
            self.platby = []
            self.platba_parsed = []
            self.feed(html)
            self.close()
    
        def handle_starttag(self, tag, attrs):
            if tag == 'td': self.tdcounter += 1
            if tag == 'tbody' and self.thead_found:
                self.within_tbody = True
    
        def handle_data(self, data):
            if 'VARIABIL' in data: self.thead_found = True
            if self.within_tbody:
                if self.tdcounter in (4,13,17):
                    self.platba_parsed.append(data.strip())
    
        def handle_startendtag(self, tag, attrs):
            if self.within_tbody and tag == 'br':
                self.tdcounter += 1
    
        def handle_endtag(self, tag):
            if tag == 'tr':
                self.tdcounter = 0
                if self.platba_parsed:
                    self.platby.append(self.platba_parsed)
                self.platba_parsed = []
            if tag == 'tbody': self.within_tbody = False
    
    url = 'http://www.ebanka.cz/Firemni-finance/Firemni-ucet/Transparentni-ucet/trAccountDetail.jsp?accountNumber=2588438001'
    htmlcache = 'ebanka_cache'
    try:
        contents = file(htmlcache).read()
    except:
        handler = urllib2.urlopen(url)
        contents = handler.read()
        handler.close()
        file(htmlcache, 'w').write(contents)
            
    parser = MyHTMLParser()
    parser.parse(contents)
    for datum, varsymb, castka in parser.platby:
        print 'Datum: %s Variabilni symbol: %s Castka: %s'%(
                datum, varsymb, castka)
    
    6.1.2007 15:22 Andrej Herceg | skóre: 43
    Rozbalit Rozbalit vše Re: parser na HTML tabulku
    Celkom zaujímavé je FireFox rozšírenie Greasemonkey. Tu je príklad skriptu (treba ho "trocha" vybrúsiť):
    // ==UserScript==
    // @name          eBanka
    // @description   eBanka
    // @include       http://www.ebanka.cz/Firemni-finance/Firemni-ucet/Transparentni-ucet/trAccountDetail.jsp*
    // ==/UserScript==
    
    
    function lTrim(value) {
    	var r = /\s*((\S+\s*)*)/;
    	return value.replace(r, "$1");
    }
    
    function rTrim(value) {
    	var r = /((\s*\S+)*)\s*/;
    	return value.replace(r, "$1");
    }
    
    function trim(value) {
    	return lTrim(rTrim(value));
    }
    
    window.addEventListener(
        'load',
        function() {
    var table, tbody, rows, columns, items, txt;
    
    txt = "";
    line = new Array(16);
    
    table = document.getElementsByTagName('table')[0];
    if (!table) {
    	alert('Nemôžem nájsť <table>');
    	return;
    }
    tbody = table.getElementsByTagName('tbody')[0];
    if (!tbody) {
    	alert('Nemôžem nájsť <tbody>');
    	return;
    }
    rows = tbody.getElementsByTagName('tr');
    for (var i = 0; i < rows.length; i++) {
    	row = rows[i];
    
    	columns = row.getElementsByTagName('td');
    	if (columns.length != 7) {
    		alert('Zlý počet stĺpcov:' + columns.length);
    		return;
    	}
    
    	items = columns[0].textContent.split('\n');
    	line[0] = items[1]; // poradove cislo
    
    	items = columns[1].textContent.split('\n');
    	line[1] = items[1];	// datum
    	line[2] = items[2];	// cas
    
    	items = columns[2].textContent.split('\n');
    	line[3] = items[1];	// poznamka
    	line[4] = items[2];	// nazov uctu
    	line[5] = items[3];	// cislo uctu
    
    	items = columns[3].textContent.split('\n');
    	line[6] = items[1];	// datum odpisania
    	line[7] = items[2];	// valuta
    	line[8] = items[3];	// typ
    
    	items = columns[4].textContent.split('\n');
    	line[9] = items[1];	// variabilny symbol
    	line[10] = items[2];	// konstantny symbol
    	line[11] = items[3];	// specificky symbol
    
    	items = columns[5].textContent.split('\n');
    	line[12] = items[2];	// ciastka
    
    	items = columns[6].textContent.split('\n');
    	line[13] = items[1];	// poplatok
    	line[14] = items[2];	// zmena
    	line[15] = items[3]; // spr8va
    
    	for (var k = 0; k < line.length; k++) {
    		line[k] = trim(line[k]);
    	}
    	txt += line.join(";") + "<br>\n";
    }
    
    document.open()
    document.writeln(txt + "<br>");
    document.close();
        },
    true);
    

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.