Programovací jazyk HTML.
Podpora TORu v Debianu 11 Bullseye a 10 Buster byla ukončena. Doporučuje se přechod na Debian 12 Bookworm.
Příkaz "opakuj donekonečna" je nově v rozporu s podmínkami používání ChatGPT. Příkaz vedl k prozrazení trénovacích dat [/.].
GNU Project Debugger aneb GDB byl vydán ve verzi 14.1. Podrobný přehled novinek v souboru NEWS. Vypíchnout lze podporu NO_COLOR a Debugger Adapter Protocol (DAP).
Byla vydána verze 5.0 webového aplikačního frameworku napsaného v Pythonu Django (Wikipedie). Přehled novinek v poznámkách k vydání.
TuxClocker je Qt GUI nástroj pro monitorování a nastavování (přetaktovávání) hardwaru na Linuxu. Aktuální verze je 1.4.0. Z novinek lze vypíchnout monitorování využití AMD a NVIDIA VRAM nebo sledování spotřeby energie procesorů AMD a Intel.
O víkendu (15:00 až 23:00) probíhá EmacsConf 2023, tj. online konference vývojářů a uživatelů editoru GNU Emacs. Sledovat ji lze na stránkách konference. Záznamy jsou k dispozici přímo z programu.
Na čem aktuálně pracují vývojáři GNOME a KDE? Pravidelný přehled novinek i s náhledy aplikací v Týden v GNOME a Týden v KDE.
Organizace Apache Software Foundation (ASF) vydala verzi 20 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.
Desktopové prostředí Cinnamon, vyvíjené primárně pro distribuci Linux Mint, dospělo do verze 6.0. Seznam změn obsahuje především menší opravy a v říjnovém přehledu novinek v Mintu avizovanou experimentální podporu Waylandu.
(1,10,13)
můžete nahradit (7,10,13)
nebo (8,10,13)
, podle toho, který datum chcete do přeheldu vkládat.
#!/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): if self.tdcounter in (1,10,13): 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 and len(self.platba_parsed) == 3 : self.platby.append(self.platba_parsed) self.platba_parsed = [] if tag == 'tbody': self.within_tbody = False url = 'http://www.rb.cz/firemni-finance/transparentni-ucty/?root=firemni-finance&item1=transparentni-ucty&tr_acc=vypis&account_number=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 '%s;%s;%s;'%(datum, varsymb, castka)
V konqueroru/opere/firefoxu jsem vzdy ziskal kratky format data. Ten je presneji "22.04.2008 04:12". Dlouhy format je "2008-06-11 09:55:11.0 2008-06-11 09:55:11.0".Jestli si to dobře pamatuju, měl jsem ve FF v prvním sloupci krátký formát data i s časem, a v tom sloupci, kde jsou dvě data, byl krátký formát bez času. Ale ve skriptu mi to vracelo v různých formátech. Docela by mne zajímalo, jak může vůbec takovýhle problém se střídavým formátováním vzniknout, protože se evidentně mění formát i u jednoho stejného řádku – takže to není ovlivněno konkrétní hodnotou data. Chápal bych, kdyby to bylo různou konfigurací počítačů v clusteru, ale jednu stránku snad vygeneruje jeden počítač, pochybuju, že by se na tom střídaly po řádcích…
Jeste to ma nejaky problemy, ale castecne je prikladam tomu ze RB kazdou chvili vraci neco jineho. Jednou mam datum ve formatu "2008-05-07 05:58:54.0" a chvili nato v "27.06.2008". Nicmene s tim si jeste chvili budu hrat sam...A já už jsem přemýšlel, jestli jsem se nezbláznil, když se mi zdálo, že to vrací datum pokaždé v jiném formátu. Jsem rád, že v tom nejsem sám
#!/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.platby = [] self.platba_parsed = [] self.recent_data = '' self.feed(html) self.close() def increase_tdcounter(self): if not self.within_tbody: return if self.tdcounter in (0, 8, 11): self.platba_parsed.append(self.recent_data) self.tdcounter += 1 self.recent_data = None def handle_starttag(self, tag, attrs): if tag == 'tbody': self.within_tbody = True def handle_data(self, data): data_stripped = data.strip() if data_stripped: self.recent_data = data_stripped def handle_startendtag(self, tag, attrs): if tag == 'br': self.increase_tdcounter() def handle_endtag(self, tag): if not self.within_tbody: return if tag == 'td': self.increase_tdcounter() if tag == 'tr': self.tdcounter = 0 self.platby.append(self.platba_parsed) self.platba_parsed = [] if tag == 'tbody': self.within_tbody = False url = 'http://www.rb.cz/firemni-finance/transparentni-ucty/?root=firemni-finance&item1=transparentni-ucty&tr_acc=vypis&account_number=2588438001' htmlcache = 'ebanka_cache.html' try: contents = file(htmlcache).read() except: browser_id = 'Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9) Gecko/2008061712 Fedora/3.0-1.fc9 Firefox/3.0' request = urllib2.Request(url) opener = urllib2.build_opener(urllib2.HTTPHandler()) opener.addheaders = [('User-Agent', browser_id)] contents = opener.open(request).read() file(htmlcache, 'w').write(contents) parser = MyHTMLParser() parser.parse(contents) for datum, varsymb, castka in parser.platby: print 'Datum: %s Var.s.: %10s Castka: %s'%( datum, varsymb, castka)
2008-07-10 08:29:20.0;2008-07-10 08:29:20.0;3800293;-19665.00; 2008-07-10 08:21:42.0;2008-07-10 08:21:42.0;280000066;-1997.00; 2008-07-10 08:11:49.0;2008-07-10 08:11:49.0;185;1400.00; 2008-07-10 05:47:50.0;2008-07-10 05:47:50.0;167;400.00; 2008-07-10 05:47:37.0;2008-07-10 05:47:37.0;9;400.00; 2008-07-10 05:46:18.0;2008-07-10 05:46:18.0;97;400,00; 10.07.2008;04:21;139;400,00; 10.07.2008;04:20;63;400,00; 10.07.2008;04:16;94;400,00; 09.07.2008;09:51;17885708;-3 174,00; 09.07.2008;01:38;108;400,00; 09.07.2008;12:17;169;400,00; 09.07.2008;11:45;49;400,00; 09.07.2008;10:27;191;2 200,00; 09.07.2008;10:27;175;5 200,00;
Jinak jsem taky nasel ulozenej starej vypis z eBanky a tam jsou vsechny datumy v tom dlouhem formatu, takze to skutecne posila ruznym klientum ruzne.Napadá mne jedině že by to byla primitivní snaha zabránit automatickému zpracování, zvlášť jestli to závisí na user-agentovi. Ale taková snaha zvlášť v této podobě by mi přišla neuvěřitelně hloupá… Pokud by to záviselo na jiných hlavičkách (třeba preferovaný jazyk), mohla by to být nějaká chybná konfigurace, kdy se na některé řádky uplatní formátování odvozené od preferovaného jazyka prohlížeče, a na jiné nějaké výchozí nastavení systému. Ale moc si nedovedu představit tu realizaci, protože to by musel znamenat, že každý řádek tabulky generuje jinak nastavený software, tedy že pravděpodobně každý řádek tabulky může vracet jiný počítač z clusteru. A to si raději ani představovat nechci. Jsem zvědav, co vám řekne někdo z technického oddělení – pokud rovnou nezablokují vaši IP adresu
Mozna by bylo reseni to proste kontrolovat rucne a pripadne rucne preskladat.Problém je, že jeden z těch formátů je úplně bez času, takže by tam pak byl asi čas 0:00:00.
neni bez casu, podivej se znovu. Akorat ten cas je bud spolu s datem v obou sloupeccich dublovane nebo je jen v tom druhem sloupecku.Ahá, pro oči nevidím. Tak proto tam máte 4 sloupečky a ne 3. Tak to jo.
Diky za ten tip s "if self.platba_parsed and len(self.platba_parsed) == 4 :" ted uz to nehavaruje na radcich bez hodnot (i takovy tam jsou, treba "Poplatek za generování výpisu").Ta podmínka se dá zjednodušit na if len(self.platba_parsed) == 4. A krom toho je možné se jí zbavit úplně a žádné řádky nezahazovat - viz výše.
Ta podmínka se dá zjednodušit na if len(self.platba_parsed) == 4No jo, když do
if
u dopisuju druhou podmínku, mohl bych se taky podívat, co dělá ta první… A krom toho je možné se jí zbavit úplně a žádné řádky nezahazovat - viz výše.Nějak to výše nemůžu najít. Jak to řešíte, když u nějaké platby není např. variabilní symbol?
já jsem sledoval i to staré vlákno a nakonec jsem na ebanku používal wget a potom parser v php. Vše fungovalo dobře, ale teď po změně nemohu wgetem stáhnout stránku s výpisem na disk. Vždy vyleze jen nějaká ořezaná verze bez tabulky pohybů (viz příloha).
Nevíte proč mi stránka nejde stáhnout?
Děkuji, zemji.
Tiskni
Sdílej: