NEWS
Adapter "Parser" - falscher Quelltext?
-
Versuche Zeiten aus https://www.saarfahrplan.de für die Abfrage nach dem nächsten Bus zu extrahieren.
Durch eine glückliche Fügung wurde mir kurz eine aussagekräftige URL angezeigt, wie
https://www.saarfahrplan.de/#!S|mock!Z|r�merkastell!date|04.12.2019!time|16:00!start
Mit den Entwicklertools von Chrome habe ich nun Teile durchforstet und auch ein paar Sachen gefunden auf die sich regexp erfolgreich anwenden lassen. ;)
Allerdings, wenn ich es mit dem parser versuche, dann schlägt er nicht an.
Schaue ich in der Config bei "Testtext" scheint auch ein ganz anderer Quelltext geparst zu werden, als ich in den Chrome entwicklertools sehe. :(<!doctype html><html class=no-js><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="ie=edge"><meta name=viewport content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"><title>saarVV</title><link id=HFS_AppleTouchIconPrecomposed144 rel=apple-touch-icon-precomposed sizes=144x144 href="img/customer/apple-touch-icon-144x144-precomposed.png?v=1.2.2.0"><link id=HFS_AppleTouchIconPrecomposed114 rel=apple-touch-icon-precomposed sizes=114x114 href="img/customer/apple-touch-icon-114x114-precomposed.png?v=1.2.2.0"><link id=HFS_AppleTouchIconPrecomposed72 rel=apple-touch-icon-precomposed sizes=72x72 href="img/customer/apple-touch-icon-72x72-precomposed.png?v=1.2.2.0"><link id=HFS_AppleTouchIconPrecomposed57 rel=apple-touch-icon-precomposed href="img/customer/apple-touch-icon-57x57-precomposed.png?v=1.2.2.0"><link id=HFS_ShortcutIcon196 rel="shortcut icon" sizes=196x196 href="img/customer/touch-icon-196x196.png?v=1.2.2.0"><link id=HFS_ShortcutIcon rel="shortcut icon" href="img/customer/apple-touch-icon.png?v=1.2.2.0"><meta id=MsApplicationTileImage name=msapplication-TileImage content="img/customer/apple-touch-icon-144x144-precomposed.png?v=1.2.2.0"><link rel=manifest href="manifest.json?v=1.2.2.0"><script type=text/javascript src="js/hafas_lib_core.js?v=1.2.2.0"></script><script type=text/javascript> var subPath = Hafas.Core.initHead({cssBasePath: 'css/', imgBasePath:'img/',version:'1.2.2.0'}); </script></head><body class=hfs onload=Hafas.Core.init();><div id=HFS_WebApp data-iframe-height=webapp class=hfs_wrapApplication></div><div id=DynamicTemplates hidden aria-hidden=true style="display: none;"></div><div id=HFS_Splashscreen class=hfs_splashscreen><div class=hfs_splashscreenWrap><h1>saarVV</h1><p>Hier steige ich ein</p><div class=statusWrapper><p id=HFS_SplashSpinner><div class="hfs_spinner large"></div></p><p style="display: none;" id=HFS_SplashOffline><i style="width: 48px;" class="haf_ic_currpos_off_inv large"></i></p></div></div></div><script type=text/javascript> if(Hafas.Core.getParameterByName("L") != null){ document.write('<script type="text\/javascript" src="customer/'+subPath+'js/hafas_webapp_config.js?v=1.2.2.0"><\/script>'); }else{ document.write('<script type="text\/javascript" src="js/hafas_webapp_config.js?v=1.2.2.0"><\/script>'); } </script><script> if ('serviceWorker' in navigator) { if(window.navigator && navigator.serviceWorker) { navigator.serviceWorker.getRegistrations() .then(function(registrations) { var i = 0, iLen = registrations.length; for (i ; i<iLen ; i++) { var _reg = registrations[i]; console.log("Unregister Service Worker with scope: ", _reg.scope); _reg.unregister(); } }); } } else { console.log('CLIENT: service worker is not supported.'); } </script><script type=text/javascript src="js/iframeResizer.contentWindow.min.js?v=1.2.2.0"></script><script type=text/javascript src="js/hafas_webapp_application.js?v=1.2.2.0"></script></body></html>Ist das ein Schutz der Webseite gegen das Auslesen, oder lässt sich da etwas machen?
-
Versuche Zeiten aus https://www.saarfahrplan.de für die Abfrage nach dem nächsten Bus zu extrahieren.
Durch eine glückliche Fügung wurde mir kurz eine aussagekräftige URL angezeigt, wie
https://www.saarfahrplan.de/#!S|mock!Z|r�merkastell!date|04.12.2019!time|16:00!start
Mit den Entwicklertools von Chrome habe ich nun Teile durchforstet und auch ein paar Sachen gefunden auf die sich regexp erfolgreich anwenden lassen. ;)
Allerdings, wenn ich es mit dem parser versuche, dann schlägt er nicht an.
Schaue ich in der Config bei "Testtext" scheint auch ein ganz anderer Quelltext geparst zu werden, als ich in den Chrome entwicklertools sehe. :(<!doctype html><html class=no-js><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="ie=edge"><meta name=viewport content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"><title>saarVV</title><link id=HFS_AppleTouchIconPrecomposed144 rel=apple-touch-icon-precomposed sizes=144x144 href="img/customer/apple-touch-icon-144x144-precomposed.png?v=1.2.2.0"><link id=HFS_AppleTouchIconPrecomposed114 rel=apple-touch-icon-precomposed sizes=114x114 href="img/customer/apple-touch-icon-114x114-precomposed.png?v=1.2.2.0"><link id=HFS_AppleTouchIconPrecomposed72 rel=apple-touch-icon-precomposed sizes=72x72 href="img/customer/apple-touch-icon-72x72-precomposed.png?v=1.2.2.0"><link id=HFS_AppleTouchIconPrecomposed57 rel=apple-touch-icon-precomposed href="img/customer/apple-touch-icon-57x57-precomposed.png?v=1.2.2.0"><link id=HFS_ShortcutIcon196 rel="shortcut icon" sizes=196x196 href="img/customer/touch-icon-196x196.png?v=1.2.2.0"><link id=HFS_ShortcutIcon rel="shortcut icon" href="img/customer/apple-touch-icon.png?v=1.2.2.0"><meta id=MsApplicationTileImage name=msapplication-TileImage content="img/customer/apple-touch-icon-144x144-precomposed.png?v=1.2.2.0"><link rel=manifest href="manifest.json?v=1.2.2.0"><script type=text/javascript src="js/hafas_lib_core.js?v=1.2.2.0"></script><script type=text/javascript> var subPath = Hafas.Core.initHead({cssBasePath: 'css/', imgBasePath:'img/',version:'1.2.2.0'}); </script></head><body class=hfs onload=Hafas.Core.init();><div id=HFS_WebApp data-iframe-height=webapp class=hfs_wrapApplication></div><div id=DynamicTemplates hidden aria-hidden=true style="display: none;"></div><div id=HFS_Splashscreen class=hfs_splashscreen><div class=hfs_splashscreenWrap><h1>saarVV</h1><p>Hier steige ich ein</p><div class=statusWrapper><p id=HFS_SplashSpinner><div class="hfs_spinner large"></div></p><p style="display: none;" id=HFS_SplashOffline><i style="width: 48px;" class="haf_ic_currpos_off_inv large"></i></p></div></div></div><script type=text/javascript> if(Hafas.Core.getParameterByName("L") != null){ document.write('<script type="text\/javascript" src="customer/'+subPath+'js/hafas_webapp_config.js?v=1.2.2.0"><\/script>'); }else{ document.write('<script type="text\/javascript" src="js/hafas_webapp_config.js?v=1.2.2.0"><\/script>'); } </script><script> if ('serviceWorker' in navigator) { if(window.navigator && navigator.serviceWorker) { navigator.serviceWorker.getRegistrations() .then(function(registrations) { var i = 0, iLen = registrations.length; for (i ; i<iLen ; i++) { var _reg = registrations[i]; console.log("Unregister Service Worker with scope: ", _reg.scope); _reg.unregister(); } }); } } else { console.log('CLIENT: service worker is not supported.'); } </script><script type=text/javascript src="js/iframeResizer.contentWindow.min.js?v=1.2.2.0"></script><script type=text/javascript src="js/hafas_webapp_application.js?v=1.2.2.0"></script></body></html>Ist das ein Schutz der Webseite gegen das Auslesen, oder lässt sich da etwas machen?
@padrino sagte in Adapter "Parser" - falscher Quelltext?:
Ist das ein Schutz der Webseite gegen das Auslesen
So was gibt es.
ABer es hat auch schon User gegeben, die nicht gemerkt hatten, dass es verschiedene Seiten (z.B. mobil/PC) für die gleichen (?) Inhalte gibt
-
@padrino sagte in Adapter "Parser" - falscher Quelltext?:
Ist das ein Schutz der Webseite gegen das Auslesen
So was gibt es.
ABer es hat auch schon User gegeben, die nicht gemerkt hatten, dass es verschiedene Seiten (z.B. mobil/PC) für die gleichen (?) Inhalte gibt
-
@Homoran
Hm, Seitenhieb oder Hinweis?
Also auf dem Handy bekomme ich die selbe Webseite (nur ohne die Karte) angezeigt wie auf dem PC...
@padrino sagte in Adapter "Parser" - falscher Quelltext?:
Hm, Seitenhieb
Wie kommst du da drauf?
Natürlich gibt es Seiten, die du nicht mit dem Parser auslesen kannst, weil der Seitenbetreieber abfragt mit welchem Browser du drauf gehst.und der Parser-Adapter ist kein Browser.
@padrino sagte in Adapter "Parser" - falscher Quelltext?:
Handy bekomme ich die selbe Webseite (nur ohne die Karte) angezeigt wie auf dem PC...
meist fängt eine mobile Seite mit "m.Seitenname.com", eine PC-Seite nicht.
Oder hier prüft der Betreiber ebenfalls aktiv mit welchem Endgerät du drauf kommst
-
@padrino sagte in Adapter "Parser" - falscher Quelltext?:
Hm, Seitenhieb
Wie kommst du da drauf?
Natürlich gibt es Seiten, die du nicht mit dem Parser auslesen kannst, weil der Seitenbetreieber abfragt mit welchem Browser du drauf gehst.und der Parser-Adapter ist kein Browser.
@padrino sagte in Adapter "Parser" - falscher Quelltext?:
Handy bekomme ich die selbe Webseite (nur ohne die Karte) angezeigt wie auf dem PC...
meist fängt eine mobile Seite mit "m.Seitenname.com", eine PC-Seite nicht.
Oder hier prüft der Betreiber ebenfalls aktiv mit welchem Endgerät du drauf kommst
@Homoran
Hm, ich weiß leider nicht, was Du mir mit den ganzen "mobil" Sachen sagen willst. :(
Ich kenne mobile Webseiten, in dem Fall ist es die selbe wie nicht mobil.
Ja, es gibt hier auch eine "m."-Variante, aber die wird auch auf dem Handy nicht genutzt.
Und selbst wenn, es ist auch der selbe Inhalt, wie auf dem PC, ohne m...Da ich, den von mir oben angegebenen Quelltext null verstehe, dachte ich, ich poste ihn mal hier, vielleicht kann ihn mir ja einer erklären und damit was schief läuft. :(
-
@padrino
Ok, ich schaffe es wohl nicht dir zu erklären was webseitenbetreiber alles tun damit ihre Seiten nicht von Nicht-Menschen gelesen werden.@padrino sagte in Adapter "Parser" - falscher Quelltext?:
vielleicht kann ihn mir ja einer erklären und damit was schief läuft.
Du schriebst, dass du von der Seite https://www.saarfahrplan.de/ deinen Fahrplan auslesen willst.
Auf dieser Seite IST kein Fahrplan!Diese Seite wird dynamisch aufgebaut und kann nicht nativ ausgelesen werden.
Während du mit dem Browser arbeitest, baut dieser die gewünschten Informationen auf. In dessen Konsole sind dann die Daten, die onlie nur einen Verweis auf eine Datenbank zeigen
Daher ist diese Seite nicht (so einfach) automatisiert auszulesen.
Im Prinzip nur mit hoher Programmierung (wenn überhaupt) -
hier evtl noch ein paar zusatzinfos
- saarfahrplan nutzt im Hintergrund hafas
https://gist.github.com/derhuerst/2b7ed83bfa5f115125a5 - einen hafas javascript client haber ich bei github gefunden
https://github.com/public-transport/hafas-client - die deutsche bahn nutzt ebenfalls hafas
hier die gespeicherte suche bei der db mit den selben Ergebnissen wie deine Suchparameter
Wenn du unbedingt parsen willst, evtl. hast du da mehr erfolg. ich würde aber eher auf die api gehen wollen wenn das geht.
https://reiseauskunft.bahn.de/bin/query.exe/dn?ld=395&protocol=https:&seqnr=1&ident=7h.0146215.1575411477&rt=1&OK#focus
- saarfahrplan nutzt im Hintergrund hafas
-
hier evtl noch ein paar zusatzinfos
- saarfahrplan nutzt im Hintergrund hafas
https://gist.github.com/derhuerst/2b7ed83bfa5f115125a5 - einen hafas javascript client haber ich bei github gefunden
https://github.com/public-transport/hafas-client - die deutsche bahn nutzt ebenfalls hafas
hier die gespeicherte suche bei der db mit den selben Ergebnissen wie deine Suchparameter
Wenn du unbedingt parsen willst, evtl. hast du da mehr erfolg. ich würde aber eher auf die api gehen wollen wenn das geht.
https://reiseauskunft.bahn.de/bin/query.exe/dn?ld=395&protocol=https:&seqnr=1&ident=7h.0146215.1575411477&rt=1&OK#focus
@Homoran sagte in Adapter "Parser" - falscher Quelltext?:
ABer es hat auch schon User gegeben, die nicht gemerkt hatten, dass es verschiedene Seiten (z.B. mobil/PC) für die gleichen (?) Inhalte gibt
Ganz ehrlich, das klingt für mich nicht nach einem Versuch mir etwas zu erklären.

@OliverIO
Danke für die ausführlichen Infos!
Ich werd' mal schauen, ob ich daraus schlau werde und damit auch etwas umsetzen kann.

- saarfahrplan nutzt im Hintergrund hafas
-
- saarfahrplan nutzt im Hintergrund hafas
https://gist.github.com/derhuerst/2b7ed83bfa5f115125a5 - einen hafas javascript client haber ich bei github gefunden
https://github.com/public-transport/hafas-client - die deutsche bahn nutzt ebenfalls hafas
Entwickler von
hafas-clienthier. Schaut euch mal das GitHub-Repo an, dennhafas-clientkann seit ner Weile auch den Saarfahrplan-Server direkt ansprechen.Es gibt darüber hinaus noch andere HAFAS-clients in anderen sprachen:
- saarfahrplan nutzt im Hintergrund hafas
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden