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í
×
dnes 13:37 | Bezpečnostní upozornění

Společnost Cloudflare (Wikipedie) na svém blogu potvrdila bezpečnostní problém s její službou. V požadovaných odpovědích od reverzní proxy byla odesílána také data z neinicializované paměti. Útočník tak mohl získat cookies, autentizační tokeny, data posílaná přes HTTP POST a další citlivé informace. Jednalo se o chybu v parsování HTML. Zneužitelná byla od 22. září 2016 do 18. února 2017. Seznam webů, kterých se bezpečnostní problém potenciálně týká na GitHubu.

Ladislav Hagara | Komentářů: 1
dnes 08:22 | Nová verze

Byla vydána první beta verze Ubuntu 17.04 s kódovým názvem Zesty Zapus. Ke stažení jsou obrazy Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu GNOME, Ubuntu Kylin, Ubuntu Studio a Xubuntu. Dle plánu by Ubuntu 17.04 mělo vyjít 13. dubna 2017.

Ladislav Hagara | Komentářů: 0
včera 17:53 | Bezpečnostní upozornění

Google na svém blogu věnovaném počítačové bezpečnost informuje o nalezení "reálného" způsobu generování kolizí hašovací funkce SHA-1. Podrobnosti a zdrojové kódy budou zveřejněny do 90 dnů. Již dnes lze ale na stránce SHAttered nalézt 2 pdf soubory, jejichž obsah se liší a SHA-1 otisk je stejný (infografika).

Ladislav Hagara | Komentářů: 12
včera 17:51 | Nová verze

Vyšla nová verzia open source software na správu a automatizáciu cloudových datacentier Danube Cloud 2.4. Danube Cloud je riešenie postavené na SmartOS, ZFS, KVM a zónach. Obsahuje vlastnosti ako integrovaný monitoring, DNS manažment, zálohy, a samozrejme rozsiahlu dokumentáciu.

dano | Komentářů: 6
včera 17:46 | Pozvánky

V Plzni se 3. až 5. března 2017 uskuteční AIMTEChackathon. Je to akce pro vývojáře, grafiky, webdesignéry i veřejnost. Akci provází zajímavé přednášky IT odborníků. Více o programu a možnosti přihlášení na stránkách akce.

cuba | Komentářů: 0
včera 01:00 | Nová verze

Známý šifrovaný komunikátor Signal od verze 3.30.0 již nevyžaduje Google Play Services. Autoři tak po letech vyslyšeli volání komunity, která dala vzniknout Google-free forku LibreSignal (dnes již neudržovaný). Oficiální binárky jsou stále distribuované pouze přes Google Play, ale lze použít neoficiální F-Droid repozitář fdroid.eutopia.cz s nezávislými buildy Signalu nebo oficiální binárku stáhnout z Google Play i bez Google účtu

… více »
xm | Komentářů: 6
22.2. 23:14 | Nová verze

Po třech týdnech od vydání první RC verze byla vydána první stabilní verze 17.01.0 linuxové distribuce pro routery a vestavěné systémy LEDE (Linux Embedded Development Environment), forku linuxové distribuce OpenWrt. Přehled novinek v poznámkách k vydání. Dotazy v diskusním fóru.

Ladislav Hagara | Komentářů: 6
22.2. 17:28 | Bezpečnostní upozornění

Byly zveřejněny informace o bezpečnostní chybě CVE-2017-6074 v Linuxu zneužitelné k lokální eskalaci práv. Jde o chybu v podpoře DCCP (Datagram Congestion Control Protocol). Do linuxového jádra se dostala v říjnu 2005. V upstreamu byla opravena 17. února (commit). Bezpečnostní chyba byla nalezena pomocí nástroje syzkaller [Hacker News].

Ladislav Hagara | Komentářů: 15
22.2. 15:00 | Zajímavý software

Společnost Valve vydala novou beta verzi SteamVR. Z novinek lze zdůraznit oficiální podporu Linuxu. Další informace o podpoře této platformy pro vývoj virtuální reality v Linuxu v diskusním fóru. Hlášení chyb na GitHubu.

Ladislav Hagara | Komentářů: 0
22.2. 06:00 | Nová verze

Po necelém roce od vydání verze 0.67 byla vydána verze 0.68 populárního telnet a ssh klienta PuTTY. Podrobnosti v přehledu změn. Řešeny jsou také bezpečnostní chyby.

Ladislav Hagara | Komentářů: 0
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (13%)
 (2%)
 (72%)
 (3%)
 (10%)
Celkem 703 hlasů
 Komentářů: 66, poslední 22.2. 18:57
    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: 836×
    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: 66
    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: 66
    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.