{"id":1120,"date":"2011-09-09T11:26:00","date_gmt":"2011-09-09T11:26:00","guid":{"rendered":"http:\/\/www.b.shuttle.de\/hayek\/Hayek\/Jochen\/wp\/blog-de\/2011\/09\/09\/das-postbank-portal-umsaetze-abholen-etc-update-2011-09-09\/"},"modified":"2011-09-09T11:26:00","modified_gmt":"2011-09-09T11:26:00","slug":"das-postbank-portal-umsaetze-abholen-etc-update-2011-09-09","status":"publish","type":"post","link":"https:\/\/wp.jochen.hayek.name\/blog-de\/2011\/09\/09\/das-postbank-portal-umsaetze-abholen-etc-update-2011-09-09\/","title":{"rendered":"das Postbank-Portal, Ums\u00e4tze abholen etc. \/ Update 2011-09-09:"},"content":{"rendered":"<p>\nAls neulich die Umstellung angek\u00fcndigt wurde und schon durch sein sollte, warf ich einen Blick auf die Seiten, die ich mit einem perl-Script bislang automatisiert abholte, und konnte keine Ver\u00e4nderung feststellen. Kein Wunder, denn die Umstellung war noch gar nicht passiert.<\/p>\n<p>Inzwischen ist die Umstellung passiert, und mein perl-Script crasht. Tja, page scraping!<\/p>\n<p>Nein, ich habe keine Lust, die ganze Abholung erneut zu automatisieren. Vielleicht codieren sie inzwischen wie die Berliner Sparkasse auch die CGI-Paramter \u2026 Nee, daf\u00fcr ist mir meine Zeit zu schade.<\/p>\n<p>Eine M\u00f6glichkeit: das neue CSV-File mit den Ums\u00e4tzen sieht \u00e4u\u00dferst passabel aus. Die Buchungsdetails stecken in einem multi-line double-quoted string. Man kann sich das f\u00fcr die letzten 100 Tage herunterladen. Also gibt&#8217;s auch keinen echten Zeitdruck. Es sollte recht einfach sein, mit ruby oder perl dieses CSV-File zu lesen und das XML-File daraus zu erzeugen, welches ich mir schon vor Jahren daf\u00fcr definiert habe und welches ich auch schon seit Jahren en passant erzeuge, aber nicht weiter verarbeite. Dieser Weg sieht ganz passabel aus.<br \/>\nDas CSV-File der Berliner Sparkasse packt alles Buchungsdetails in einen String ohne Zeilentrennung. Das ist Bockmist.<\/p>\n<p>Die andere M\u00f6glichkeit: Eines der HBCI-Java-Pakete benutzen, um auf alle diese Konten zuzugreifen und die Ums\u00e4tze abzuholen. Das sieht letzten Endes nach mehr aber auch nach zukunftssicherer Automatisierung aus.<\/p>\n<p>Vielleicht beschreite ich beide Wege. Vielleicht in dieser Reihenfolge.<\/p>\n<p>Update 2011-09-09:<br \/>\nAls erstes brachte ich meinem Script mal bei, das aktuell als alt betrachtete Portal zu benutzen, um m\u00f6glichst rasch wieder mit Kontoausz\u00fcgen bzw. Ums\u00e4tzen versorgt zu werden.<br \/>\nDas ging problemloser, als ich das erwartet habe.<\/p>\n<div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Als neulich die Umstellung angek\u00fcndigt wurde und schon durch sein sollte, warf ich einen Blick auf die Seiten, die ich mit einem perl-Script bislang automatisiert abholte, und konnte keine Ver\u00e4nderung feststellen. Kein Wunder, denn die Umstellung war noch gar nicht passiert. Inzwischen ist die Umstellung passiert, und mein perl-Script crasht. Tja, page scraping! Nein, ich [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false,"_share_on_mastodon":"0"},"categories":[352],"tags":[],"class_list":["post-1120","post","type-post","status-publish","format-standard","hentry","category-nicht-zugeordnet"],"share_on_mastodon":{"url":"","error":""},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/paO0l8-i4","jetpack_likes_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/wp.jochen.hayek.name\/blog-de\/wp-json\/wp\/v2\/posts\/1120","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wp.jochen.hayek.name\/blog-de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wp.jochen.hayek.name\/blog-de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wp.jochen.hayek.name\/blog-de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wp.jochen.hayek.name\/blog-de\/wp-json\/wp\/v2\/comments?post=1120"}],"version-history":[{"count":0,"href":"https:\/\/wp.jochen.hayek.name\/blog-de\/wp-json\/wp\/v2\/posts\/1120\/revisions"}],"wp:attachment":[{"href":"https:\/\/wp.jochen.hayek.name\/blog-de\/wp-json\/wp\/v2\/media?parent=1120"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wp.jochen.hayek.name\/blog-de\/wp-json\/wp\/v2\/categories?post=1120"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wp.jochen.hayek.name\/blog-de\/wp-json\/wp\/v2\/tags?post=1120"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}