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 12:55 | Nová verze

The Document Foundation oznámila na svém blogu vydání verze 5.4 svobodného kancelářského balíku LibreOffice. Z novinek lze zmínit například podporu podepisování ODF dokumentů pomocí OpenPGP klíčů. Podrobnosti v poznámkách k vydání a na YouTube.

Ladislav Hagara | Komentářů: 0
včera 12:11 | Zajímavý článek

Bylo vydáno (pdf) již šedesáté číslo stostránkového anglicky psaného časopisu MagPi věnovanému Raspberry Pi a projektům postaveným na tomto jednodeskovém počítači. K dispozici je také jako papírový časopis za £5,99.

Ladislav Hagara | Komentářů: 4
včera 02:44 | Nová verze

Byl vydán Sway ve verzi 0.14. Přehled opravených chyb, změn a novinek v nejnovější verzi tohoto dlaždicového (tiling) správce oken pro Wayland kompatibilního s i3 na GitHubu. Do vývoje se zapojilo 12 vývojářů [reddit].

Ladislav Hagara | Komentářů: 0
27.7. 22:33 | Nová verze

Byla vydána verze 4.0 svobodného systému pro detekci a prevenci průniků a monitorování bezpečnosti počítačových sítí Suricata (Wikipedie). Přehled novinek v poznámkách k vydání a v aktualizované dokumentaci. Ve dnech 15. až 17. listopadu proběhne v Praze konference vývojářů a uživatelů Suricaty SuriCon 2017.

Ladislav Hagara | Komentářů: 0
27.7. 17:11 | Nová verze

Byla vydána dvaadvacátá alfa verze svobodné historické realtimové strategie 0 A.D. (Wikipedie). Kódový název této nejnovější verze je Venustas. Představení novinek také na YouTube.

Ladislav Hagara | Komentářů: 3
27.7. 11:33 | Zajímavý článek

Radek Vokál v článku Boltron – náhled modulárního operačního systému (en) na MojeFedora.cz představuje a informuje o možnosti vyzkoušet si Boltron, prototyp modulární distribuce. Pro Fedoru 26 je k dispozici testovací docker kontejner, který obsahuje modifikovanou verzi správce balíčků DNF, který na pozadí pracuje s moduly.

Ladislav Hagara | Komentářů: 9
27.7. 07:00 | Nová verze

ZFS on Linux, tj. implementace OpenZFS (Wikipedie) na Linuxu, byl vydán ve verzi 0.7.0. Přehled novinek v diskusním listu zfs-announce nebo na GitHubu. Nejnovější ZFS on Linux je kompatibilní s Linuxem 2.6.32 až 4.12.

Ladislav Hagara | Komentářů: 0
27.7. 01:44 | IT novinky

V Las Vegas končí bezpečnostní konference Black Hat USA 2017 (Twitter) a začíná bezpečnostní konference DEF CON 25 (Twitter). V rámci Black Hat budou vyhlášeny výsledky letošní Pwnie Awards (Twitter). Pwnie Awards oceňují to nejlepší, ale i to nejhorší z IT bezpečnosti (bezpečnostní Oscar a Malina v jednom). V kategorii "Lamest Vendor Response" byl například nominován také Lennart Poettering za jeho přístup k řešení bezpečnostních chyb v systemd, viz například chyba s uživatelem 0day.

Ladislav Hagara | Komentářů: 5
27.7. 00:22 | Bezpečnostní upozornění

Nitay Artenstein z Exodus Intelligence se v příspěvku na blogu společnosti podrobně věnuje bezpečností chybě Broadpwn (CVE-2017-9417). Její analýzu provedl také Zhuowei Zhang na blogu Booster Ok. Jedná se o chybu ve firmwaru Wi-Fi chipsetů BCM43xx od Broadcomu. Útočník může vzdáleně získat kontrolu nad zařízením. Chyba byla již opravena v macOS, iOS i Androidu [Hacker News].

Ladislav Hagara | Komentářů: 4
26.7. 22:55 | IT novinky

Intel končí s vývojovými deskami Joule, Edison, Galileo a také s Arduino 101 a Curie.

Ladislav Hagara | Komentářů: 3
Těžíte nějakou kryptoměnu?
 (4%)
 (1%)
 (19%)
 (75%)
Celkem 140 hlasů
 Komentářů: 8, poslední 27.7. 21:30
    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: 840×
    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.